{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np  # 矩阵操作\n",
    "import pandas as pd # SQL数据处理\n",
    "\n",
    "import matplotlib.pyplot as plt   #画图\n",
    "import seaborn as sns\n",
    "\n",
    "# 图形出现在Notebook里而不是新窗口\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "file = open(\"C:/Users/chenxi/Desktop/learn/机器学习/作业/共享单车/day.csv\")\n",
    "data = pd.read_csv(file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1        0        6           0   \n",
       "1        2  2011-01-02       1   0     1        0        0           0   \n",
       "2        3  2011-01-03       1   0     1        0        1           1   \n",
       "3        4  2011-01-04       1   0     1        0        2           1   \n",
       "4        5  2011-01-05       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>726</th>\n",
       "      <td>727</td>\n",
       "      <td>2012-12-27</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.254167</td>\n",
       "      <td>0.226642</td>\n",
       "      <td>0.652917</td>\n",
       "      <td>0.350133</td>\n",
       "      <td>247</td>\n",
       "      <td>1867</td>\n",
       "      <td>2114</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>727</th>\n",
       "      <td>728</td>\n",
       "      <td>2012-12-28</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.253333</td>\n",
       "      <td>0.255046</td>\n",
       "      <td>0.590000</td>\n",
       "      <td>0.155471</td>\n",
       "      <td>644</td>\n",
       "      <td>2451</td>\n",
       "      <td>3095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>728</th>\n",
       "      <td>729</td>\n",
       "      <td>2012-12-29</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.253333</td>\n",
       "      <td>0.242400</td>\n",
       "      <td>0.752917</td>\n",
       "      <td>0.124383</td>\n",
       "      <td>159</td>\n",
       "      <td>1182</td>\n",
       "      <td>1341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>730</td>\n",
       "      <td>2012-12-30</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.255833</td>\n",
       "      <td>0.231700</td>\n",
       "      <td>0.483333</td>\n",
       "      <td>0.350754</td>\n",
       "      <td>364</td>\n",
       "      <td>1432</td>\n",
       "      <td>1796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>731</td>\n",
       "      <td>2012-12-31</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.215833</td>\n",
       "      <td>0.223487</td>\n",
       "      <td>0.577500</td>\n",
       "      <td>0.154846</td>\n",
       "      <td>439</td>\n",
       "      <td>2290</td>\n",
       "      <td>2729</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "726      727  2012-12-27       1   1    12        0        4           1   \n",
       "727      728  2012-12-28       1   1    12        0        5           1   \n",
       "728      729  2012-12-29       1   1    12        0        6           0   \n",
       "729      730  2012-12-30       1   1    12        0        0           0   \n",
       "730      731  2012-12-31       1   1    12        0        1           1   \n",
       "\n",
       "     weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "726           2  0.254167  0.226642  0.652917   0.350133     247        1867   \n",
       "727           2  0.253333  0.255046  0.590000   0.155471     644        2451   \n",
       "728           2  0.253333  0.242400  0.752917   0.124383     159        1182   \n",
       "729           1  0.255833  0.231700  0.483333   0.350754     364        1432   \n",
       "730           2  0.215833  0.223487  0.577500   0.154846     439        2290   \n",
       "\n",
       "      cnt  \n",
       "726  2114  \n",
       "727  3095  \n",
       "728  1341  \n",
       "729  1796  \n",
       "730  2729  "
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 731 entries, 0 to 730\n",
      "Data columns (total 16 columns):\n",
      "instant       731 non-null int64\n",
      "dteday        731 non-null object\n",
      "season        731 non-null int64\n",
      "yr            731 non-null int64\n",
      "mnth          731 non-null int64\n",
      "holiday       731 non-null int64\n",
      "weekday       731 non-null int64\n",
      "workingday    731 non-null int64\n",
      "weathersit    731 non-null int64\n",
      "temp          731 non-null float64\n",
      "atemp         731 non-null float64\n",
      "hum           731 non-null float64\n",
      "windspeed     731 non-null float64\n",
      "casual        731 non-null int64\n",
      "registered    731 non-null int64\n",
      "cnt           731 non-null int64\n",
      "dtypes: float64(4), int64(11), object(1)\n",
      "memory usage: 91.5+ KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>2.496580</td>\n",
       "      <td>0.500684</td>\n",
       "      <td>6.519836</td>\n",
       "      <td>0.028728</td>\n",
       "      <td>2.997264</td>\n",
       "      <td>0.683995</td>\n",
       "      <td>1.395349</td>\n",
       "      <td>0.495385</td>\n",
       "      <td>0.474354</td>\n",
       "      <td>0.627894</td>\n",
       "      <td>0.190486</td>\n",
       "      <td>848.176471</td>\n",
       "      <td>3656.172367</td>\n",
       "      <td>4504.348837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>211.165812</td>\n",
       "      <td>1.110807</td>\n",
       "      <td>0.500342</td>\n",
       "      <td>3.451913</td>\n",
       "      <td>0.167155</td>\n",
       "      <td>2.004787</td>\n",
       "      <td>0.465233</td>\n",
       "      <td>0.544894</td>\n",
       "      <td>0.183051</td>\n",
       "      <td>0.162961</td>\n",
       "      <td>0.142429</td>\n",
       "      <td>0.077498</td>\n",
       "      <td>686.622488</td>\n",
       "      <td>1560.256377</td>\n",
       "      <td>1937.211452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>22.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>183.500000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.337083</td>\n",
       "      <td>0.337842</td>\n",
       "      <td>0.520000</td>\n",
       "      <td>0.134950</td>\n",
       "      <td>315.500000</td>\n",
       "      <td>2497.000000</td>\n",
       "      <td>3152.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.498333</td>\n",
       "      <td>0.486733</td>\n",
       "      <td>0.626667</td>\n",
       "      <td>0.180975</td>\n",
       "      <td>713.000000</td>\n",
       "      <td>3662.000000</td>\n",
       "      <td>4548.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>548.500000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.655417</td>\n",
       "      <td>0.608602</td>\n",
       "      <td>0.730209</td>\n",
       "      <td>0.233214</td>\n",
       "      <td>1096.000000</td>\n",
       "      <td>4776.500000</td>\n",
       "      <td>5956.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.861667</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>3410.000000</td>\n",
       "      <td>6946.000000</td>\n",
       "      <td>8714.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          instant      season          yr        mnth     holiday     weekday  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean   366.000000    2.496580    0.500684    6.519836    0.028728    2.997264   \n",
       "std    211.165812    1.110807    0.500342    3.451913    0.167155    2.004787   \n",
       "min      1.000000    1.000000    0.000000    1.000000    0.000000    0.000000   \n",
       "25%    183.500000    2.000000    0.000000    4.000000    0.000000    1.000000   \n",
       "50%    366.000000    3.000000    1.000000    7.000000    0.000000    3.000000   \n",
       "75%    548.500000    3.000000    1.000000   10.000000    0.000000    5.000000   \n",
       "max    731.000000    4.000000    1.000000   12.000000    1.000000    6.000000   \n",
       "\n",
       "       workingday  weathersit        temp       atemp         hum   windspeed  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean     0.683995    1.395349    0.495385    0.474354    0.627894    0.190486   \n",
       "std      0.465233    0.544894    0.183051    0.162961    0.142429    0.077498   \n",
       "min      0.000000    1.000000    0.059130    0.079070    0.000000    0.022392   \n",
       "25%      0.000000    1.000000    0.337083    0.337842    0.520000    0.134950   \n",
       "50%      1.000000    1.000000    0.498333    0.486733    0.626667    0.180975   \n",
       "75%      1.000000    2.000000    0.655417    0.608602    0.730209    0.233214   \n",
       "max      1.000000    3.000000    0.861667    0.840896    0.972500    0.507463   \n",
       "\n",
       "            casual   registered          cnt  \n",
       "count   731.000000   731.000000   731.000000  \n",
       "mean    848.176471  3656.172367  4504.348837  \n",
       "std     686.622488  1560.256377  1937.211452  \n",
       "min       2.000000    20.000000    22.000000  \n",
       "25%     315.500000  2497.000000  3152.000000  \n",
       "50%     713.000000  3662.000000  4548.000000  \n",
       "75%    1096.000000  4776.500000  5956.000000  \n",
       "max    3410.000000  6946.000000  8714.000000  "
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(731, 16)"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制用户分布直方图\n",
    "fig = plt.figure()\n",
    "#sns.distplot(data.cnt.values, bins=20, kde=True)\n",
    "sns.distplot(data[\"cnt\"],bins=50, kde=True)\n",
    "plt.xlabel(\"Median value of by bike\",size=10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由上图可知，租车人数的分布基本接近于正态分布，在2000,5000,8000附近存在一些离群点，推测可能是由于外部环境原因造成的偶发现象，考虑将离群点去掉，"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "season属性的不同取值和出现的次数\n",
      "3    188\n",
      "2    184\n",
      "1    181\n",
      "4    178\n",
      "Name: season, dtype: int64\n",
      "\n",
      "holiday属性的不同取值和出现的次数\n",
      "0    710\n",
      "1     21\n",
      "Name: holiday, dtype: int64\n",
      "\n",
      "weathersit属性的不同取值和出现的次数\n",
      "1    463\n",
      "2    247\n",
      "3     21\n",
      "Name: weathersit, dtype: int64\n",
      "\n",
      "weekday属性的不同取值和出现的次数\n",
      "6    105\n",
      "1    105\n",
      "0    105\n",
      "5    104\n",
      "4    104\n",
      "3    104\n",
      "2    104\n",
      "Name: weekday, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "#观察参数分布情况\n",
    "#类别特征分布\n",
    "category_features = ['season','holiday','weathersit','weekday']\n",
    "for item in category_features:\n",
    "    print('\\n%s属性的不同取值和出现的次数'%item)\n",
    "    print(data[item].value_counts())\n",
    "    data[item] = data[item].astype('object')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     season_1  season_2  season_3  season_4  holiday_0  holiday_1  \\\n",
      "0           1         0         0         0          1          0   \n",
      "1           1         0         0         0          1          0   \n",
      "2           1         0         0         0          1          0   \n",
      "3           1         0         0         0          1          0   \n",
      "4           1         0         0         0          1          0   \n",
      "5           1         0         0         0          1          0   \n",
      "6           1         0         0         0          1          0   \n",
      "7           1         0         0         0          1          0   \n",
      "8           1         0         0         0          1          0   \n",
      "9           1         0         0         0          1          0   \n",
      "10          1         0         0         0          1          0   \n",
      "11          1         0         0         0          1          0   \n",
      "12          1         0         0         0          1          0   \n",
      "13          1         0         0         0          1          0   \n",
      "14          1         0         0         0          1          0   \n",
      "15          1         0         0         0          1          0   \n",
      "16          1         0         0         0          0          1   \n",
      "17          1         0         0         0          1          0   \n",
      "18          1         0         0         0          1          0   \n",
      "19          1         0         0         0          1          0   \n",
      "20          1         0         0         0          1          0   \n",
      "21          1         0         0         0          1          0   \n",
      "22          1         0         0         0          1          0   \n",
      "23          1         0         0         0          1          0   \n",
      "24          1         0         0         0          1          0   \n",
      "25          1         0         0         0          1          0   \n",
      "26          1         0         0         0          1          0   \n",
      "27          1         0         0         0          1          0   \n",
      "28          1         0         0         0          1          0   \n",
      "29          1         0         0         0          1          0   \n",
      "..        ...       ...       ...       ...        ...        ...   \n",
      "701         0         0         0         1          1          0   \n",
      "702         0         0         0         1          1          0   \n",
      "703         0         0         0         1          1          0   \n",
      "704         0         0         0         1          1          0   \n",
      "705         0         0         0         1          1          0   \n",
      "706         0         0         0         1          1          0   \n",
      "707         0         0         0         1          1          0   \n",
      "708         0         0         0         1          1          0   \n",
      "709         0         0         0         1          1          0   \n",
      "710         0         0         0         1          1          0   \n",
      "711         0         0         0         1          1          0   \n",
      "712         0         0         0         1          1          0   \n",
      "713         0         0         0         1          1          0   \n",
      "714         0         0         0         1          1          0   \n",
      "715         0         0         0         1          1          0   \n",
      "716         0         0         0         1          1          0   \n",
      "717         0         0         0         1          1          0   \n",
      "718         0         0         0         1          1          0   \n",
      "719         0         0         0         1          1          0   \n",
      "720         1         0         0         0          1          0   \n",
      "721         1         0         0         0          1          0   \n",
      "722         1         0         0         0          1          0   \n",
      "723         1         0         0         0          1          0   \n",
      "724         1         0         0         0          0          1   \n",
      "725         1         0         0         0          1          0   \n",
      "726         1         0         0         0          1          0   \n",
      "727         1         0         0         0          1          0   \n",
      "728         1         0         0         0          1          0   \n",
      "729         1         0         0         0          1          0   \n",
      "730         1         0         0         0          1          0   \n",
      "\n",
      "     weathersit_1  weathersit_2  weathersit_3  weekday_0  weekday_1  \\\n",
      "0               0             1             0          0          0   \n",
      "1               0             1             0          1          0   \n",
      "2               1             0             0          0          1   \n",
      "3               1             0             0          0          0   \n",
      "4               1             0             0          0          0   \n",
      "5               1             0             0          0          0   \n",
      "6               0             1             0          0          0   \n",
      "7               0             1             0          0          0   \n",
      "8               1             0             0          1          0   \n",
      "9               1             0             0          0          1   \n",
      "10              0             1             0          0          0   \n",
      "11              1             0             0          0          0   \n",
      "12              1             0             0          0          0   \n",
      "13              1             0             0          0          0   \n",
      "14              0             1             0          0          0   \n",
      "15              1             0             0          1          0   \n",
      "16              0             1             0          0          1   \n",
      "17              0             1             0          0          0   \n",
      "18              0             1             0          0          0   \n",
      "19              0             1             0          0          0   \n",
      "20              1             0             0          0          0   \n",
      "21              1             0             0          0          0   \n",
      "22              1             0             0          1          0   \n",
      "23              1             0             0          0          1   \n",
      "24              0             1             0          0          0   \n",
      "25              0             0             1          0          0   \n",
      "26              1             0             0          0          0   \n",
      "27              0             1             0          0          0   \n",
      "28              1             0             0          0          0   \n",
      "29              1             0             0          1          0   \n",
      "..            ...           ...           ...        ...        ...   \n",
      "701             0             1             0          1          0   \n",
      "702             1             0             0          0          1   \n",
      "703             1             0             0          0          0   \n",
      "704             1             0             0          0          0   \n",
      "705             1             0             0          0          0   \n",
      "706             0             1             0          0          0   \n",
      "707             0             1             0          0          0   \n",
      "708             0             1             0          1          0   \n",
      "709             0             1             0          0          1   \n",
      "710             0             1             0          0          0   \n",
      "711             0             1             0          0          0   \n",
      "712             1             0             0          0          0   \n",
      "713             1             0             0          0          0   \n",
      "714             1             0             0          0          0   \n",
      "715             0             1             0          1          0   \n",
      "716             0             1             0          0          1   \n",
      "717             1             0             0          0          0   \n",
      "718             1             0             0          0          0   \n",
      "719             0             1             0          0          0   \n",
      "720             0             1             0          0          0   \n",
      "721             1             0             0          0          0   \n",
      "722             1             0             0          1          0   \n",
      "723             0             1             0          0          1   \n",
      "724             0             1             0          0          0   \n",
      "725             0             0             1          0          0   \n",
      "726             0             1             0          0          0   \n",
      "727             0             1             0          0          0   \n",
      "728             0             1             0          0          0   \n",
      "729             1             0             0          1          0   \n",
      "730             0             1             0          0          1   \n",
      "\n",
      "     weekday_2  weekday_3  weekday_4  weekday_5  weekday_6  \n",
      "0            0          0          0          0          1  \n",
      "1            0          0          0          0          0  \n",
      "2            0          0          0          0          0  \n",
      "3            1          0          0          0          0  \n",
      "4            0          1          0          0          0  \n",
      "5            0          0          1          0          0  \n",
      "6            0          0          0          1          0  \n",
      "7            0          0          0          0          1  \n",
      "8            0          0          0          0          0  \n",
      "9            0          0          0          0          0  \n",
      "10           1          0          0          0          0  \n",
      "11           0          1          0          0          0  \n",
      "12           0          0          1          0          0  \n",
      "13           0          0          0          1          0  \n",
      "14           0          0          0          0          1  \n",
      "15           0          0          0          0          0  \n",
      "16           0          0          0          0          0  \n",
      "17           1          0          0          0          0  \n",
      "18           0          1          0          0          0  \n",
      "19           0          0          1          0          0  \n",
      "20           0          0          0          1          0  \n",
      "21           0          0          0          0          1  \n",
      "22           0          0          0          0          0  \n",
      "23           0          0          0          0          0  \n",
      "24           1          0          0          0          0  \n",
      "25           0          1          0          0          0  \n",
      "26           0          0          1          0          0  \n",
      "27           0          0          0          1          0  \n",
      "28           0          0          0          0          1  \n",
      "29           0          0          0          0          0  \n",
      "..         ...        ...        ...        ...        ...  \n",
      "701          0          0          0          0          0  \n",
      "702          0          0          0          0          0  \n",
      "703          1          0          0          0          0  \n",
      "704          0          1          0          0          0  \n",
      "705          0          0          1          0          0  \n",
      "706          0          0          0          1          0  \n",
      "707          0          0          0          0          1  \n",
      "708          0          0          0          0          0  \n",
      "709          0          0          0          0          0  \n",
      "710          1          0          0          0          0  \n",
      "711          0          1          0          0          0  \n",
      "712          0          0          1          0          0  \n",
      "713          0          0          0          1          0  \n",
      "714          0          0          0          0          1  \n",
      "715          0          0          0          0          0  \n",
      "716          0          0          0          0          0  \n",
      "717          1          0          0          0          0  \n",
      "718          0          1          0          0          0  \n",
      "719          0          0          1          0          0  \n",
      "720          0          0          0          1          0  \n",
      "721          0          0          0          0          1  \n",
      "722          0          0          0          0          0  \n",
      "723          0          0          0          0          0  \n",
      "724          1          0          0          0          0  \n",
      "725          0          1          0          0          0  \n",
      "726          0          0          1          0          0  \n",
      "727          0          0          0          1          0  \n",
      "728          0          0          0          0          1  \n",
      "729          0          0          0          0          0  \n",
      "730          0          0          0          0          0  \n",
      "\n",
      "[731 rows x 16 columns]\n"
     ]
    }
   ],
   "source": [
    "#对类别性特征进行独热编码处理\n",
    "#尝试对季节（season）进行独热编码处理\n",
    "# data['season'].astype('object')\n",
    "# X_cat = data['season']\n",
    "# X_cat = pd.get_dummies(X_cat)\n",
    "# print(X_cat)\n",
    "\n",
    "\n",
    "    \n",
    "data_cat = data[category_features]\n",
    "data_cat = pd.get_dummies(data_cat)\n",
    "print(data_cat)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1e130cabcf8>"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#数值特征分布，直方图\n",
    "numerical_features = ['temp','atemp','hum','windspeed']\n",
    "# for item in numerical_features:\n",
    "#     data[item].hist()\n",
    "data['temp'].hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1e130ae4278>"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data['atemp'].hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1e130e06f98>"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data['hum'].hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1e130d25b00>"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data['windspeed'].hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       temp     atemp       hum  windspeed\n",
      "0  0.355170  0.373517  0.828620   0.284606\n",
      "1  0.379232  0.360541  0.715771   0.466215\n",
      "2  0.171000  0.144830  0.449638   0.465740\n",
      "3  0.175530  0.174649  0.607131   0.284297\n",
      "4  0.209120  0.197158  0.449313   0.339143\n"
     ]
    }
   ],
   "source": [
    "#对数值型数据进行标准化处理\n",
    "# 数值型变量标准化预处理，\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "mn_X = MinMaxScaler()\n",
    "numerical_features = ['temp','atemp','hum','windspeed']\n",
    "temp = mn_X.fit_transform(data[numerical_features])\n",
    "data_num = pd.DataFrame(data=temp, columns=numerical_features, index =data.index)\n",
    "print(data_num.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season_1</th>\n",
       "      <th>season_2</th>\n",
       "      <th>season_3</th>\n",
       "      <th>season_4</th>\n",
       "      <th>holiday_0</th>\n",
       "      <th>holiday_1</th>\n",
       "      <th>weathersit_1</th>\n",
       "      <th>weathersit_2</th>\n",
       "      <th>weathersit_3</th>\n",
       "      <th>...</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>holiday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>cnt</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.355170</td>\n",
       "      <td>0.373517</td>\n",
       "      <td>0.828620</td>\n",
       "      <td>0.284606</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>985</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.379232</td>\n",
       "      <td>0.360541</td>\n",
       "      <td>0.715771</td>\n",
       "      <td>0.466215</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>801</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.171000</td>\n",
       "      <td>0.144830</td>\n",
       "      <td>0.449638</td>\n",
       "      <td>0.465740</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1349</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.174649</td>\n",
       "      <td>0.607131</td>\n",
       "      <td>0.284297</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1562</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.209120</td>\n",
       "      <td>0.197158</td>\n",
       "      <td>0.449313</td>\n",
       "      <td>0.339143</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1600</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 27 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant  season_1  season_2  season_3  season_4  holiday_0  holiday_1  \\\n",
       "0        1         1         0         0         0          1          0   \n",
       "1        2         1         0         0         0          1          0   \n",
       "2        3         1         0         0         0          1          0   \n",
       "3        4         1         0         0         0          1          0   \n",
       "4        5         1         0         0         0          1          0   \n",
       "\n",
       "   weathersit_1  weathersit_2  weathersit_3  ...       temp     atemp  \\\n",
       "0             0             1             0  ...   0.355170  0.373517   \n",
       "1             0             1             0  ...   0.379232  0.360541   \n",
       "2             1             0             0  ...   0.171000  0.144830   \n",
       "3             1             0             0  ...   0.175530  0.174649   \n",
       "4             1             0             0  ...   0.209120  0.197158   \n",
       "\n",
       "        hum  windspeed  holiday  workingday   cnt  yr  mnth   cnt  \n",
       "0  0.828620   0.284606        0           0   985   0     1   985  \n",
       "1  0.715771   0.466215        0           0   801   0     1   801  \n",
       "2  0.449638   0.465740        0           1  1349   0     1  1349  \n",
       "3  0.607131   0.284297        0           1  1562   0     1  1562  \n",
       "4  0.449313   0.339143        0           1  1600   0     1  1600  \n",
       "\n",
       "[5 rows x 27 columns]"
      ]
     },
     "execution_count": 148,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#合并数据集\n",
    "data_concat = pd.concat([data_cat, data_num, data['holiday'],  data['workingday'], data['cnt']], axis = 1, ignore_index=False)\n",
    "# 合并数据\n",
    "FE_train = pd.concat([data['instant'], data_concat,  data['yr'], data['mnth'], data['cnt']], axis = 1)\n",
    "FE_train.to_csv('C:/Users/chenxi/Desktop/learn/机器学习/作业/共享单车/FE_day.csv', index=False) #保存数据\n",
    "#print(FE_train.head())\n",
    "\n",
    "FE_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAucAAAIMCAYAAABWhAKJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8TNf7wPHPmUmCiARBVnto7UutRSNKKIIullpaaimqVWspaqu1qihq6ddS1dra2vei9iV2YoklyCayUWuSmfv7I2lksljazEyS3/N+vebFvefcO8+Tc2fmzLnn3lGapiGEEEIIIYSwPp21AxBCCCGEEEIkks65EEIIIYQQWYR0zoUQQgghhMgipHMuhBBCCCFEFiGdcyGEEEIIIbII6ZwLIYQQQgiRRUjnXAghhBBCiJeklFqklIpQSp3LoFwppWYppa4opc4opaq/yH6lcy6EEEIIIcTLWwI0e0b5W0CZpEcv4IcX2al0zoUQQgghhHhJmqbtBaKfUaU18JOW6DCQXynl9rz9SudcCCGEEEKIzOcB3EqxHJy07plszBZODhEfeU2zdgyZKeH4ZmuHkOnOdNtl7RAyXb3II9YOIdPVLFzW2iGI5zgRdcXaIWQ6Lyd3a4eQ6XzylLB2CJluQoNIa4eQqRJiE6wdglk4b/hLWTuGlMzdR7MrXPpjEqej/GOBpmkLXmIX6f29nhuzdM6FEEIIIYRIJakj/jKd8dSCgaIplj2B0OdtJJ1zIYQQQgiR/RgN1o7gedYD/ZRSK4DawF1N08Ket5F0zoUQQgghhHhJSqlfgYZAIaVUMDAasAXQNG0esBloDlwBHgLdXmS/0jkXQgghhBDZj2a07tNr2vvPKdeAT152v3K3FiGEEEIIIbIIGTkXQgghhBDZj9G6I+fmIiPnQgghhBBCZBEyci6EEEIIIbIdzcpzzs1FRs6FEEIIIYTIImTkXAghhBBCZD8y51wIIYQQQghhTjJyLoQQQgghsp8cOudcOudCCCGEECL7MRqsHYFZyLQWIYQQQgghsggZORdCCCGEENlPDp3WIiPnQgghhBBCZBHSOc8CRk6czhstOtCmc29rh/LCDgTcoPXXy/Ab9xOLdvinKQ+L/pses36n/ZRfaTv5F/adDwJg07FLtJvya/KjWv/vuRh8x8LRP59Tw2pU3vc9VQ7Mwa3f22nKC7XzofrZxVTc8S0Vd3xL4Y6NrRBloqa+DTl/bi8XA/YzdMgnacrt7Oz4ZfkPXAzYz8H9Gyhe3DO57Iuh/bgYsJ/z5/bi28TbZDudTsexo9tY98fS5HUL5k/juP8OThzfwcoVC8ib1958iaWjTsOarNi7lNX7f6bLJ++nKa9auzJLts5n342d+LR4w6Rs/82dLN2+kKXbFzJ18deWCvm5ckJOvk0acvbMHgLO72Pw4L5pyu3s7Ph52VwCzu9j3971ycdgwYL52bZtJVGRF5nx3XiTbWxtbZk7ZzLnzv7FmdO7adPmLYvkkp76PnXYeGAVWw6vocenH6Qpf61OVVbvWMrpkAP4tmxkUjb/1xkcuryTOT9/a6lwX0g57yqM+vM7Ru+ZSZM+rdOUN+reghE7vmX4lql8unwkBTwKJZe1HtaJEdunMXLndN4b3dWCUT+bTaWaOExdgsO0n8jVskO6dWxreeMweREOk/5Hnj5fJq9XzkWwHzolsWzyIlQhF0uF/Uy21WuR/4dl5J+/nNzvdUy3jl19H5zmLMVpzhIcBo8CQFfYBafvFuA080ec5iwhV7NWlgzbcoxG8z6sxKrTWpRSBzVNe/1fbNcGuKxpWsC/fN4SwOuapv3yb7bPbG2aN6Hju634cvw0a4fyQgxGI5NW72HeJ21wye9Ap2kr8a5YitJuBZPrLNx+DN9qZWjXoBJXw6LpN389Wyp0pUXNV2hR8xUAAkMj+XzhJl71LGytVNKn01FiYk8udhhLXFgUFTZPJXbbMR4FBptUi1p/gBsjfrRSkIl0Oh2zZk6gWfP3CQ4O4/ChzWzYuJ0LFwKT63zU7X1iYu7yavn6tGvXikkTR9CxUx/KlStDu3atqVy1Ee7uLmzbsoJyFRpgTHpD+uzTHly8GIhjvnzJ+xo0eAx//30fgGlTR/NJ325M/WaOxXIdNKE//d8fQkTYHRZtnse+7QcJCryRXCc85DbjB0yhU+/2abZ/8jiOD317WiTWF5UTctLpdMyc+TXNW3QkODiMgwc2snHjDi5efHoMduvagdjYWMpXaEDbtq2Y8PWXdO7Sl8ePnzB27DQqlH+FChVeMdnvsGGfEnEnioqVvFFKUbBgfkunBiTmN2LyEHq2+5TboRGs3LaE3dv2cfXy9eQ6YSG3GdF/PF37dEqz/aK5P5MnT27afpD2S761KJ2i3biPmN15ArHhUQxZP4mzO/wJvxKSXOdWQBD7/IYT/ziO+p2b0GZ4Jxb3m0nJ6mUpVeMVJjYbAsDANeMoU6c8gYf/1cdx5lE6cn/4GQ+mDEWLvoPDuLnEnziEMfTpa0nn4kEuv/e5P+4zeHgf5fj0mLL/+AuerP+FhHPHIVdu0DRrZGFKpyNv78+5N2oQxqg7OE2fT/yRAxhupcjJzYM873Xi3tBP0B7cRzkl5mSMieLukE8gIR5y5yH/7MXEHT2AFh1lrWzES7DqyPm/6ZgnaQOU/w9PXQJI/yuoFdSoWgknx3zPr5hFnLtxm6KF8+NZyAlbGz1Nq5dlz9lrJnUU8OBxHAD3Hz+hsGPeNPvZcvwyzV4ra4mQX4pDNS8eB4Xx5OZttPgEotftp0DTWtYOK121albj6tUgrl+/SXx8PKtWraOVX1OTOq38fFm2bDUAv/22iUY+9ZPWN2XVqnXExcURFHSLq1eDqFWzGgAeHm40f+tNFi361WRf/3TMAXLnyY1mwQ+w8tVeJTgolNCbYSTEJ7Bz3S7eaFrPpE548G2uXriW/AUjq8sJOdWsWdX0GFy9Hj8/X5M6fn6+LPt5DQC//74JH5/EHB8+fMTBg8d4/ORJmv1++GF7pk6dDYCmaURFxZg5k/RVql6eW9eDCb4RSnx8ApvX7sCnmekZjNBbYVwOuIKWThsd2efPg/sPLRXuCylR1YvIG7eJuhWBId7AiQ0Hqexb06RO4KHzxCe9hwedDCS/q3NSiYZtLltsbG2wsbNFb6Pn3p27Fs4gLX3pVzHeDkG7EwaGBOIP78b2NdMuhp1PC57sXA8PE9/HtHuxAOjci4NOn9gxB3jyGOLSHpOWZlOmHIawEIy3wyAhgSd7d2Fbu75JndxN/Xi8+Q+0B0k53U3MiYSExI45oGxtQZczJ0pomtGsD2uxamsppe4n/dtQKbVHKbVGKXVRKbVcKaWSyiYrpQKUUmeUUtOUUq8DrYBvlFKnlFKllVI9lVLHlFKnlVK/KaXsk7ZdopSapZQ6qJS6ppR6L+mpJwMNkrYfYI3cs7OI2Ae45ndIXnbJ70DE3fsmdXq/VZtN/pfwHbWIfvM2MOw979S7YfuJQN6qnvU653auzsSFPh1diAuLwjbFWYF/FGxel0o7p1NmwRDs3J3TlFuCu4crt4JDk5eDQ8Jwd3fNsI7BYODu3Xs4OxfA3T2dbT0St53+7ViGDf863Q7hjwunE3LrFK++4sXsOYvMkVa6CrsWIiI0Ink5IuwOhV0LPWMLU3a57Fi0eR4LN8xJ0wG2lpyQU+rjKCQkDI/Ux6C7K8EpjsF79/7G2blAhvt0cnIEYMzoIRw+tJlflv9AkSIv/nfJTC6uRQgLvZ28fDs0AhfXLHa27yU5uRQkJsV7XExYFE4uGbdH3XY+BOw5BcD1E4EEHjrPhGPzmXh0Phf2nub21ZAMt7UUVaAQWvTTKZLG6DuoAqbHjM7VE72bJ3lHzSTv6O+xqZT4hUTn5on28AH2n43BYfw8cnfoBcr6nVmdcyGMkU/fH4xRd9A7m+ak9/BE714UxymzcfxmLrbVnw4k6QoVxmnWIgosXs2jNb/IqHk2Yv2j76lqwOckjoiXAuoppQoCbwMVNE2rDHytadpBYD0wRNO0qpqmXQV+1zStpqZpVYALQPcU+3UD6gMtSeyUAwwD9iVt/50lkstJNNKOliZ9l0q29fhlWtV+le3jP2J2bz9GLtuO0fh0u7NB4eS2s8XLSp3aZ1LprEuVcuyOY5yq/TFnGw/k7r7TlJrxmUVCSy313x1IM5qdfp2Mt23RvDEREZGcOHk23efs0XMgRYtX58LFQNq1tdw8xhfJ9VnertWej5r3ZvQnX/P52H54FHfPzPD+lZyQ04sdg2m3e1aeNjZ6inq6c/DQMerUbc6RIyeYPHnkf471X0kv9nTeA7OT9Noso5RqtqlPscql+XPBegAKFXfBxcuDkXX6MKJOb8q+XpHStcqZMdoXlO77dqqkdHp0Lh48mDiQh3MnkKfHILDPCzo9Nq9U5NGv87k/ui+6Im7YvtE0nR1aWAbv3Sb0evTuntz7sj/3p40j76dDUHkTB8+MkXe4+9lHxPTqSO43m6HyZ/wFLNvKoXPOs1Ln/KimacFa4nmEUyROPbkHPAZ+VEq9A2R0brCiUmqfUuos0AmokKJsraZpxqT56S90hYdSqpdSyl8p5f/jT78+f4P/Z1zyOxAe+3Sk/Hbs/TTTVv44HIBvtTIAVCnpxpMEA7EPHiWXbz0RSLPXylgm4JcUFxZlMhJu5+ZMfHi0SZ2EmPtocQkARCzfSd7KpSwa4z9CgsMo6vm0Q+bp4UZY2O0M6+j1epycHImOjiEkJJ1tQ2/z+us18Gvpy5XLh1n+81x8fOqxdMksk30ajUZWr17PO2+3MGN2piLC7lDEvUjychG3wkTefvGRoH/qht4M48ShU5St6JXpMb6snJBT6uPIw8ON0NTHYEg4nimOQUfHfERHx2a4z6ioGB48eMi6dVsB+O33jVSrWtEM0T/f7bAI3NyffnS4uBchIjzSKrFkltjwKAqkeI8r4ObM3Yi004ZeqVeJpv3eYX6PqSQkvd9VaVqLoJOBxD18QtzDJ5zfc4qS1az/Xq5FR6IKPj2joStYGC3W9LVkjL5D/ImDYDCg3QnHGHYLvYsnWvQdDDeuJE6JMRqJP34AfQnr52SMvIOu0NP3B51zYYzRkWnqxB3ZDwYDxtvhGENuoXP3NKmjRUeRcDMI2/KVLRK3+O+yUuc85QQvA2CjaVoCUAv4jcR55lsz2HYJ0E/TtErAWCB3BvtN77t1GpqmLdA0rYamaTV6fJD27gn/31Uo5sLNO7GERN0lPsHAthOX8a5U0qSOWwEHjlxOvIDyWng0cfEGCjjkAcBo1NhxMpBmWXBKC8D9U1fIXdKNXEWLoGxtKNi6PjHbj5nUsS3ydASigG9NHgda57TuMf9TeHmVpESJotja2tKuXWs2bNxuUmfDxu106dIWgHffbcHuPQeS17dr1xo7OztKlCiKl1dJjh47yYiRkylRqgZeZevQqXNfdu8+wIddE88MlC5dInm/LVs04dKlK5ZJFLhw6iJFS3rgVtQVG1sbGrduxL7tB19o23xODtja2QLgVMCRyjUrcv3yjedsZX45ISd//9N4eZV4egy2bcXGjTtM6mzcuIMunRNnFb7zTgv2JB2Dz7Jp0068vesC4ONT3+QiZ0s6d/ICxUoVxaOYG7a2NjRv04Td2/ZaJZbMcuP0VQqXcMXZszB6Wz3V/V7nTKq7bnlWKEGHiT2Y32Mq96PuJa+PCY3Eq3Z5dHodOhs9ZWqXI/xKcOqnsDjDtYvoXT1QhV1Bb4NtHZ/EjngKCccPYFOuKgDKwRGdqyfGO2EYrl1C5c2HyucEgE35ahhDrP/+kBB4Eb27JzoXV7CxIdcbjYg/avraiTu8H5tKidcKKUcndO5FMYaHonMuDHZ2ievzOmBbriKGkFsWz8HsNKN5H1aSpX+ESCnlANhrmrZZKXUY+Kcn8DeQ8grKfECYUsqWxJHz5/WUUm9vVUNGT+bYyTPExt7jzTad6du9C+/6ZYFTahmw0esY9p43feaux2g00rpOebzcnJm76TDlixWhYaVSDGzTgHErdrF890lQirGdGiefSj1+NQSX/A54FnKyciYZMBgJGvEjr/zyFUqv486KP3l0+RYeQzrw4PRVYrcfw7V7c/L71kRLMGKI/ZurA763TqgGA/0/H8nmTb+g1+lYsnQlAQGXGTN6MP7HT7Nx4w4WLV7B0iWzuBiwn5iYWDp2TrzVXUDAZdas2cDZ07tJMBj4rP+IZ150qJRi8f9mkM/RAaUUZ84E8Em/4ZZKFYPByLcjZzHjl6nodDo2rtzC9ctB9BzcjQunL7F/x0HKVXmFyf8bTz4nB+o3qUuPQd3o1KgbJcoU54vJAzFqGjqlWDb7V5M7olhLTsjJYDDw+eej2LjhZ/R6PUuWruTChct89dUgThw/w8ZNO1i8ZAWLF80g4Pw+oqNj6fLB01t+Xrp0EMd8+bCzs8XPryktWnbi4sVARoycyKJFM5n2zRgiI6Po2WuQxXP7J78Jw6exYMUsdHodf/y6gauXrtNvaC/On77A7m37qFi1HDMXT8Uxfz4a+jbgkyE9ae2dOLDz07r5lPQqjn3ePPx5cgNfDfiaA3uOWCWXfxgNRlZ9tYhPfvoSpddxeNUewgODaTGgLTfPXuPszuO0Gd6ZXPa56T438bKsmJBI5vf8hpObD1P29Yp8uW0amqZx4a9TnPvzhFXzAcBo5NFP35N3yBTQ6YjfuwVjyA1yvdMVw/VLJJw8RMLZY9hUqoHD5EVgNPB4xQK0+4lfPB7/Op+8w6aBAkNQIHG7N1k5IcBo4MG8GTiOnQY6HU92bsZwM4g8nT4iIfAi8UcPEn/iKLbVauI0ZykYjTxc/APa3/ewqVqDfB/1JXG+kuLRHysx3Lj2vGcUWYSy5N0W0jy5Uvc1TXNQSjUEBmua1jJp/WzAH9gGrCNxJFwB0zRNW6qUqgcsJHFU/D3AFxgK3ADOAvk0TeuqlFoCbNQ0bU2q57MlcRS+ELDkWfPO4yOvZe/JhakkHN9s7RAy3Zluu6wdQqarF2ndD29zqFk4a54pEU+diLLcmRBL8XKy/rUFmc0nTwlrh5DpJjTI3lOFUkuITbB2CGbhvOGvF5qBYClPLv5l1j5arle9rZKvVUfONU1zSPp3D7Anxfp+KaqluYedpmkHML2V4g9Jj9T1umbwfPHAm/86cCGEEEIIIcwgS09rEUIIIYQQIl1WnBduTlnpglAhhBBCCCH+X5ORcyGEEEIIkf1k0V9O/q9k5FwIIYQQQogsQkbOhRBCCCFE9iNzzoUQQgghhBDmJCPnQgghhBAi+8mhc86lcy6EEEIIIbIdTTNYOwSzkGktQgghhBBCZBEyci6EEEIIIbIfuSBUCCGEEEIIYU4yci6EEEIIIbKfHHpBqIycCyGEEEIIkUXIyLkQQgghhMh+ZM65EEIIIYQQwpxk5FwIIYQQQmQ/RrnPuRBCCCGEEMKMZOT8ORKOb7Z2CJnK5rXm1g4h09WLnGTtEMQLuHQv2NohiOco5ehm7RAyXWBsiLVDyHS18nhaO4RM9/B6zpo7/OS+nbVDMAtnaweQmsw5F0IIIYQQQpiTjJwLIYQQQojsR+5zLoQQQgghhDAnGTkXQgghhBDZj8w5F0IIIYQQQpiTjJwLIYQQQojsR+acCyGEEEIIIcxJRs6FEEIIIUT2IyPnQgghhBBCCHOSkXMhhBBCCJHtaJrB2iGYhXTOhRBCCCFE9iPTWoQQQgghhBDmJCPnQgghhBAi+5EfIRJCCCGEEEKYk4ycCyGEEEKI7EfmnAshhBBCCCHMSUbOhRBCCCFE9iNzzsW/dSDgBq2/XobfuJ9YtMM/TXlY9N/0mPU77af8StvJv7DvfBAAm45dot2UX5Mf1fp/z8XgOxaO/uWNnDidN1p0oE3n3tYOJY2mvg05f24vFwP2M3TIJ2nK7ezs+GX5D1wM2M/B/RsoXtwzueyLof24GLCf8+f24tvEO3n9wgXfEhp8mlMn/zTZV5UqFTiwbwP+x7Zz+NBmataoar7EkmR2fp6e7uzcvpqzZ/Zw+tQuPu3X3ew5pPZm4wYcObEN/1M76T+wV5pyOzs7/rdkBv6ndrJj1xqKFvMwKffwdONm2Cn6ffY09j6fdOXg0c0cOLKJhYu+I1cuO7PnkZI5cnJ0yseSZd9z+PhWDvtvpWYt8x9vGanvU4fNB1ez9chv9Pj0gzTlNepU47edP3E29CC+LRuZlC1YMZMjgX/yw8/TLRVuunx9G3Lu7F8EBOxnyOD0X0vLf55LQMB+9u97+loqWDA/27etIjrqEjNmfJ1cP0+e3Kxdu5SzZ/Zw6uSfTPh6uMVySU9F76pM/HMWk/fMpnmft9OU+3b34+sdMxi3ZTpDlo/G2aNwctn/rq5i7OZpjN08jc8WDrNk2M+Uq3ZNCv+ylMIrfiZv5/fTlOd5qylFNvxBocULKbR4IXlaNk8uy9enF4V+WkShnxaRu5GPJcN+pjyv18Bj7SI81i/BqVv7NOUOrXwpums17ivn4b5yHg5vvwVA7hpVkte5r5xH8SObsPd53dLhi39JOudmZjAambR6D3N6t+L3Lzux9fhlroZFm9RZuP0YvtXKsPKL95n8YTMmrt4DQIuar7Dqi/dZ9cX7TOjSBPeCjrzqWTidZ8la2jRvwrzpXz+/ooXpdDpmzZxAS7/OVKriQ/v2bShXroxJnY+6vU9MzF1eLV+fGbMWMmniCADKlStDu3atqVy1ES1aduL7WRPR6RJfPj/9tIoWLTuleb7JE0cw/uvp1Kjpy9ix05g8aUS2yy8hIYEhQ8dSqXJD6tX3o0+frmn2ae6cpn47hnbv9KBuzbd4972WvPKKl0mdzh+8R2zsPWpUbcwPcxYzZtwQk/KJk0fw5469yctubi706v0Bjd54m3q1W6DX63jnvZYWyQfMkxPApKkj+XPnXuq81owGdf24dOmq2XNJj06nY9SUofR6vz9+9dvT4p2mlC5b0qROaEg4wz8bx6bft6fZftGcn/nik9GWCjddOp2OmTO/xq9VF6pU8aF9+9aUe9X0uO/WrQMxsXcpX74+s2YtZOKELwF4/PgJY8Z+wxfDxqfZ73ffzadS5YbUrNWMunVr0LSpdTqBSqejy7iefNd1AiOafE7tVvVx9/I0qXMz4Drj/Iby1VsD8d9ymHbDuySXxT2OY3TzwYxuPphZPSdbOvz06XQ4DuxP9OBh3OnclTyN38SmRPE01R7v2k1kt55EduvJo42bAchVtw62ZcsQ2a0HUb36krdje5S9vaUzSEuno+DwT7n9yZeEvNODvM18sC1VLE21B9v/IrR9b0Lb9+b+H1sAeOx/OnldeM8hGB8/5tGh45bOwPyMRvM+rOT/dedcKaU393Ocu3GbooXz41nICVsbPU2rl2XP2WumcQAPHscBcP/xEwo75k2zny3HL9PstbLmDjdT1KhaCSfHfNYOI41aNatx9WoQ16/fJD4+nlWr1tHKr6lJnVZ+vixbthqA337bRCOf+knrm7Jq1Tri4uIICrrF1atB1KpZDYB9+48QHROb5vk0TSNf0t/B0SkfoWG3zZmeWfILD4/g5KlzANy//4CLFwPxcHc1ax4pvVajMtev3eBG0C3i4+P5/bdNvNXyTZM6zVs0ZsUvvwOwbu1W3mhY92lZy8YEBd3i4oVAk21sbGzInSc3er2ePPZ5CA+LMH8yScyRU758Drz+ek2WLU1s2/j4eO7d/dsC2aRVuXoFbl4PJvhGKPHxCWz+YzuNmr1hUif0VhiXA65gTOfD7/C+Yzy4/9BS4aarZs2qaV5Lfn6+JnX8Ur6Wft+ET9Jr6eHDRxw8eIzHj5+Y1H/06DF//XUQSGyfk6fO4eHhZoFs0ipV1YuIG+HcuXUbQ3wCRzfsp5pvTZM6Fw+dIy7pc+nqycsUcHW2RqgvzLbcqxiCQzGEhkFCAo927iJX/XovtK1NieLEnToNBiPa48ckXLlKrjq1zBzx8+Wq+AoJt0JJCAmHhAQebNuDfcOXH/22b9KARweOoaU6JkXWlaM750qp8Uqp/imWJyilPlNK7VZK/QKcNXcMEbEPcM3vkLzskt+BiLv3Ter0fqs2m/wv4TtqEf3mbWDYe96pd8P2E4G8VT17dM6zKncPV24FhyYvB4eE4Z6qo5myjsFg4O7dezg7F8DdPZ1tPZ7dSR04eDRTJo3k+tVjTJ08ihEjJ2ViNmmZO7/ixT2pWqUiR46eNGMWptzcXAkJCUteDg0Jx83NxbSOuwshweFAYk737t6noHMB7O3z0H9AL6ZO+t6kfljYbWbP+h9nAv7iwpWD3Lv7N7t37Td/Mv/Ea4acipcoSmRkNLPnTWHP/nXMnD0Be/s85k8mHUVcCxMe8vSL6O2wCFzcsv4Zv5Q83N0IvvW0jUJCwnFP1ZH2cHclODixjsFg4O69xNfSi3BycqRFi8bs3m254y6lAi4FiQ6NTF6ODoumgEvGne832r3J2T0nkpdtc9nx1fopjPxjEtV8rd+JBdAXLoQh4umXbOOdO+gLF0pTL7f3GxRa8iP5x49BVyTxuIy/cpVctWtDrlwoJ0fsqldFX8T6x6y+SCESwp9OZU24HYm+SNqc7N+sj/uq+RT+ZhR6l7Rx523akAdbdps1VqvRjOZ9WEmO7pwD/wM+BFBK6YAOQAhQCxihaVr59DZSSvVSSvkrpfz/t/nAfwpAQ0tv/ybLW49fplXtV9k+/iNm9/Zj5LLtGI1PtzsbFE5uO1u83LP2yEVWl/rvDomj28+v82LbpvZxrw8YNGQMJUvXZNCQsSyc/+1LRvxyzJlf3rz2rFq5kIGDR/P33/fT1DWXdMJ6wZw0ho34jB9mL+bBA9NRWKf8jrzV4k2qVWpE+TL1sM+bh7btW2Vq3M9ijpxsbPRUqVqBxT/+QsP6rXn44BGfD/w4U+N+URkdY9nJf2mj59Hr9SxbNoc5cxZx/frNfx3jf/ISsddt8wYlKpdmy4J1yesGv/4x41p9wfzPZtDxq24ULuaS7rYWlX6jmSw+PnCIiLbvE9m1B3H+x8k/InG+fNwxf54cPkyhebMpMGYU8ecC0AxZ4ELDF8jp4V+HCG7ehdAdEkgCAAAgAElEQVR2H/P4yEkKjTedAqcvVBA7r5I8OpT2ejeRdeXou7VomhaklIpSSlUDXICTQBRwVNO068/YbgGwAODRttn/6WPFJb8D4bFPOzO3Y++nmbbyx+EA5vZJ7BxUKenGkwQDsQ8eUTBf4py3rScCafaa5eb55lQhwWEU9XRPXvb0cCMs1VSTf+qEhISh1+txcnIkOjqGkJB0tg199jSVD7q0ZcDArwBYs2YDC+Z9k4nZpGWu/GxsbFi9ciG//voHa9duMWsOqYWGhpuc+nf3cCU83HQKSmhIOB6eroSGhqPX63F0ciAmOpbXalShVetmjBk/FCcnR4xGI48fP+FORCQ3bwQTFZl47cfG9dupVbs6q1euz7Y5rV+7ldCQcI77nwZg3bqtVuuc3w6LwNXjaWfNxa0IEeFZ/0L2lIJDwvAs+rSNPDxcCQsNT1vH0+3pa8nRkejotNPbUvth7hSuXLnO99//L9PjflEx4VEUdH86AlvQrSCxEdFp6pWvV5mW/d5lcvtRJMQlJK+PjYgB4M6t21w8fJ7iFUpy56Z5p+09jyHiDvoiRZKXdYULY4iMMqmj3buX/P+HGzaRr8/Ti7Hv/7Sc+z8tByD/6JEYbgWbOeLnM9y+g43r05FwG5dCGO6Y5mRMMX3t7983U6B/D5Nye19vHu4+AAkG8wZrLXKf82zrR6Ar0A1YlLTugaWevEIxF27eiSUk6i7xCQa2nbiMdyXTi6PcCjhw5HLiG8G18Gji4g0UcEg8JW00auw4GUgzmdLynx3zP4WXV0lKlCiKra0t7dq1ZsNG0wvSNmzcTpcubQF4990W7N5zIHl9u3atsbOzo0SJonh5leTosWdP7wgNu433G4lzhRv51CfwSobfBzOFufJbuOBbLly8woyZC8waf3pOHD9LqdIlKFbcE1tbW955twVbN5neFWfL5j/p0PEdAFq3aca+vw4D0KJpR6pW9KFqRR/mzV3Cd9/O48cFPxMcHEaNmlXJkyc3AG80rMtlC148aY6cIiIiCQkJw6tM4nuLt3ddLl28YrGcUjp7MoDipYriUcwdW1sbmr/ty+5t+6wSy7/l7386zWtp48YdJnU2btzx9LX0Tgv27Hn+WdaxY4bg5OTIoEHWveD1+ukrFCnhRiHPIuhtbajlV5+Tqe4kVqxCST6c+DGzekzm76innVp7x7zY2CWO6zkUyEeZ114lNND6Hdn4ixfRF/VA7+YKNjbkadyIJwcOmtTRORdM/n+u+q+TcCPpzIVOh3J0BMCmdClsSpfiybFjFos9I0/OX8KmmAc27ok55W3akId/HTKpoy/0NCd777rEpzob49DMJ+dOacnBcvTIeZI/gHGALdARaGDJJ7fR6xj2njd95q7HaDTSuk55vNycmbvpMOWLFaFhpVIMbNOAcSt2sXz3SVCKsZ0aJ58yPX41BJf8DngWcrJk2P/JkNGTOXbyDLGx93izTWf6du/Cu6kuTLQGg8FA/89HsnnTL+h1OpYsXUlAwGXGjB6M//HTbNy4g0WLV7B0ySwuBuwnJiaWjp37AhAQcJk1azZw9vRuEgwGPus/Ivlitp+XzcH7jboUKlSQoGv+jB03jcVLVtC79xCmTx+HjY0NTx4/pk+fodkuv3qv16RL5/c4czYA/2OJHf1RoyazZesus+aSMqehg8eyZu0i9Do9y5et4eLFKwwf0Z+TJ8+ydfMufv5pNfMWTsP/1E5iYmLp0W3AM/d53P8069duZff+tRgSDJw5HcDSxSstkg+YJyeALwaPZ/6P32JnZ0tQ0C369bHOLe4MBgNfD/uGH1fOQqfX8fsvG7hy6RqfftGLc6cusHvbPipWLcf3S6bi6OSIj28DPh3aC783OgCwbP0CSnkVxz5vHnaf2sDIARM4sPuwxXP4/PNRbNq4HJ1ex9IlKwm4cJnRXw3m+InE19LixStYsngmAQH7iYmOpXOXvsnbX750CEfHfNjZ2dLKryktWnTk3t/3GT68PxcvBnL0yFYA5v6whMWLf7VobgBGg5HlX/3IoJ9GodPr2LdqF6GBt2gzoANBZ69waqc/7YZ/QC773PSdOwiAqJBIZvWcjLuXJx9O/BijpqFTik0//EHoFet3zjEYuTd9FgWnTwWdjkebtpBwPQiH7t2Iv3iJJwcOkve9dxIvEjUYMN67R+yEpDvN2OhxnjMTAO3hQ2LHTYCsMK3FYCR68mxcfpgEOh33120j/uoN8vf5kCcBl3n01yHyvd8G+4Z1IcGA4d7fRH719AytjbsLetfCPD5+xopJmFkOHTlXLzJHLrtTSs0DYjVNG6aUaggM1jTthe6d9l+ntWQ1Nq81f36lbCaPu0W/b4l/yTFXFrg1mXgmlzwvdkFjdnL1bujzK2UzndxqWzuETDfRM+20muzsyf2cOfZZ4tSOdCbCW8+jTTPM2kfL0+Jzq+SbM4+eFJIuBK0DtAXQNG0PsMeKIQkhhBBCiP9KfiE0+1FKlQeuAH9qmhb4vPpCCCGEEEJYU44eOdc0LQAoZe04hBBCCCFEJsuhc85z9Mi5EEIIIYQQ2UmOHjkXQgghhBA5lMw5F0IIIYQQQpiTjJwLIYQQQojsJ4fOOZfOuRBCCCGEyH5kWosQQgghhBDCnGTkXAghhBBCZD85dFqLjJwLIYQQQgiRRcjIuRBCCCGEyH5k5FwIIYQQQghhTjJyLoQQQgghsh9Ns3YEZiEj50IIIYQQQmQRMnIuhBBCCCGyH5lzLoQQQgghhDAnGTl/jjPddlk7hExVL3KStUPIdI9C91k7hExn797A2iFkujcLlrd2CJlKh7J2CJnOSM6bv1k2dxFrh5DpTjwOs3YIme6b4GLWDiFTJeTA1xLALGsHkJqMnAshhBBCCCHMSUbOhRBCCCFE9qPJyLkQQgghhBDCjGTkXAghhBBCZD8y51wIIYQQQghhTtI5F0IIIYQQ2Y+mmffxApRSzZRSl5RSV5RSw9IpL6aU2q2UOqmUOqOUav68fUrnXAghhBBCiJeklNIDc4C3gPLA+0qp1PcNHgms0jStGtABmPu8/cqccyGEEEIIkf1Yf855LeCKpmnXAJRSK4DWQECKOhrgmPR/JyD0eTuVzrkQQgghhBAvzwO4lWI5GKidqs4YYLtS6lMgL9D4eTuVaS1CCCGEECL7MRrN+lBK9VJK+ad49EoVQXo/FZ16svr7wBJN0zyB5sAypdQz+98yci6EEEIIIbIfM/8IkaZpC4AFz6gSDBRNsexJ2mkr3YFmSfs7pJTKDRQCIjLaqYycCyGEEEII8fKOAWWUUiWVUnYkXvC5PlWdm8CbAEqpckBu4M6zdioj50IIIYQQItvRjC92u0OzPb+mJSil+gHbAD2wSNO080qpcYC/pmnrgUHAQqXUABKnvHTVtGffp1E650IIIYQQQvwLmqZtBjanWvdViv8HAPVeZp/SORdCCCGEENmP9W+laBYy51wIIYQQQogsQkbOhRBCCCFE9mPmu7VYi3TOLcypYTWKj/8IpdMR8etOwmb/YVJeqJ0PxUZ9QFx4NAC3F2/hzi87rREqAE19GzJ9+jj0Oh2LFv/K1G/mmJTb2dmxZPFMqlerRHR0DO936sONG8EAfDG0H926dsBgNDJgwCi27/gLgIULvqVF88ZE3ImkarU3k/dVpUoF5s6eTK7cuUhISODTT7/kmP8pyyX7DCMnTmfvgaMULJCftT/Ps3Y4JnxTtdE36bTR4hRt1DFFGw1N1UY7ktoo8PJh7t+/j8FgJCEhgTp1mwNQuXJ55syejIODPUE3gvngg378/fd9i+Va1bsa3Ub3RKfX8eeKHaz94TeT8pY9WvFmB18MCQbuRd9l7pDviQy5Q4nyJek5oTd5HOwxGoz8Pns1Bzfut1jcz1LFuxpdR/dAp9exa8UO1v3wu0l5ix6taNShSVJO95iXlFMhj8IMmj8MnU6H3lbP1iWb2Ll8m5WyMJXT2qmad3V6jumFTq9jx4rt/DZ3jUl5qx5t8H0/MZ+70ff4fvAM7oQk3oxh9E9jKVvtFS74B/B1t3HWCD9dr/vU5ovxn6PT6/lj+QYWzV5mUl69TlWGjutPmfKl+aL3aHZu3A3AKxXKMGLKEBzy2WMwGPlx5lK2rfvTGimk8ap3Fdp89SE6vY7DK3ex6wfTm2Z4d29O7Q6NMCYYuB/9NyuHziMmJBKAlsM6Us6nGgA7vv+dUxsPWTz+9JTzrsI7X3VFp9dxaOUudv6wzqTcp3sL6nZohCHBwP3oe/ySIqdWwzpRoVE1lE7HpX1n+G3sEitkIP6NHD2tRSmVXynVN8VyQ6XURqsFpNNRYmJPLnX6mjMN++PcugF5ynimqRa1/gDnmgziXJNBVu2Y63Q6Zs2cQEu/zlSq4kP79m0oV66MSZ2Pur1PTMxdXi1fnxmzFjJp4ggAypUrQ7t2ralctREtWnbi+1kT0ekSD7efflpFi5ad0jzf5IkjGP/1dGrU9GXs2GlMnjTC/Em+oDbNmzBv+tfWDiONf9rIz68zlav40CGDNoqNuUu58vWZOWshE1O0Uft2ralStREtU7URQOMmbalR0ze5Yw4wf943fDliItWqN2bd2i0MGtTHMomSmGv38R8z4cOxDGjcj3qtGuBZpqhJnevnr/NFy4EMbtafw5sP0mV4VwCePHrC9wNmMLDJp0z4YCxdR3fH3jGvxWLPiNLp+Gj8x0z6cBwDG39KvVYN8Ej1nhB0/hrDWw5iaLPPObL5IJ2GfwhATEQMo975gi+aD2BE66G07vMuBYoUsEYaJnJaO+l0Oj7+ug9jPxxNvzf70qCVN0XT5HOVgS0G0L/ppxzctJ+uX3ZLLvtj/u/MGDDd0mE/k06n48tJg+nbcRBvv9GRZm83plTZEiZ1wkPCGdX/a7b8scNk/eNHjxn56Tje8e5M3/cHMmRcf/I5Olgw+vQpneKdcR+xoOtkpjQZRPVW9XDx8jCpExIQxHd+XzLtrS84s+UILYcnfg6V86mGR4USfNv8C2a2GYlPr5bkcshjjTRMKJ2i7biPmNd1EhObDOS1VvVwTZVTcEAQ3/gNZ8pbQzm95Qitk3IqWb0spWq8wuRmQ5jkO4hiVUrjVae8NdIwL6Nm3oeV5OjOOZAf6PvcWhbiUM2Lx0FhPLl5Gy0+geh1+ynQtJa1w8pQrZrVuHo1iOvXbxIfH8+qVeto5dfUpE4rP1+WLVsNwG+/baKRT/2k9U1ZtWodcXFxBAXd4urVIGrVTByV2Lf/CNExsWmeT9M08jnmA8DRKR+hYbfNmd5LqVG1Ek5JsWUlqdto5ap1+KVqI78M2sjPrykrM2ijjJQtW5p9+w4DsPPPfbz9dvNn1s9MXlXLEB4UTsSt2yTEJ3Bgwz5qNDF9/Zw/dJa4x3EAXD55iYJuzgCEXQ8lPCgMgJiIaO5G3sWxoKPFYs+IV9Uy3A4KI+LWbQzxCRzcsJ+aTUx/+fn8oXPJOQWevIRzUk6G+AQS4hIAsLWzRadL74fqLC+ntVOZqmUJDwrj9s3EfPZt2Est3zomdc4eOkvc4ycAXDp5CWe3QsllZw6c5tH9RxaN+XkqVivPrevBhNwMJSE+ga1rd9KwaQOTOqG3wgm8cBVjqgvubly7xc3riWfe7tyOJDoyhgLO+S0We0aKVfUi8kY40bciMMQbOLnhIBV9a5jUuXIogPik4+7GyUDyuxYEwLWMB1ePXMBoMBL36AmhF27yqncVi+eQWvGqXty5cZuopJxObDhIJd+aJnUCD51PzinoZCD5XRNfSxoatrlssbG1wcbOFr2Nnr/v3LV4DuLfyfKdc6VUCaXURaXUj0qpc0qp5UqpxkqpA0qpQKVULaXUGKXUIqXUHqXUNaXUZ0mbTwZKK6VOKaW+SVrnoJRak7TP5Uopi32i2bk6ExcalbwcFxaFrVvBNPUKNq9LpZ3TKbNgCHbuzpYKLw13D1duBT/9oavgkDDc3V0zrGMwGLh79x7OzgVwd09nWw/TbVMbOHg0UyaN5PrVY0ydPIoRIydlYjY5k7uHK8Ep/s4hIWF4vGAbebin3fafNtI0jS2bf+XI4S306P70LMf585fw8/MF4L13W1LU091suaVW0NWZqLDI5OXosCicXTN+fbzZvgkn9xxPs96rShls7Gy4fSPcLHG+jIKuBU1yigqLooBr2veEf/i0b8ypPSeSl53dCjF16wzmHv6RdfN+JyYixqzxvoic1k7Ors5Ehj79vZCosEicXTLOp0l7X47vTptPVlLErTDhoU8HPyLC7uDiVvil91OxWjlsbW25FRSSmeH9K04uBYlN8fkaGxaNk0vGr6Xa7Xy4sCdx2mTIhZuUa1gV29x25C2QD6+65cnvZr3P3n/kT5NTFE4uGZ8dq9POh4CknIJOBHL50HnGH5vP10fnc2HvaW5ftX47ZTqj0bwPK8nynfMkXsBMoDLwKtARqA8MBr5MqvMq0BSoBYxWStkCw4CrmqZV1TRtSFK9asDnQHmgFC9578n/JL2vAanOmsTuOMap2h9ztvFA7u47TakZn6WzkWWk970l9X3z06/zYtum9nGvDxg0ZAwlS9dk0JCxLJz/7UtG/P+PudrIu2EbatVuRku/zvTp05X69RNHc3v2Gkif3l05cngLDvnyEhcXnxlp/GsZHVMN3vamVCUv1s83vaYjf5ECfPrdAOYOnvXc49ESVHpvChmEVf9tb0qnyikqLJKhzT6n/xu98X7XB6dCTmaK9L/J1u2UXhNlEJP32w3xquzFH/N/S7c8q0hvSOpl/86Fijgz4fuv+OrzCdZvI14up9fa1Kdo5VLsXrABgMv7znBh90k++30cnWd9StCJQIyGLHChYQbv3emp0aY+xSqXZteCxHn2hYq74OrlwVd1+jCqTm/Kvl6R0rXKmTNakYmyS+f8uqZpZzVNMwLngT+Tfl3pLFAiqc4mTdOeaJoWCUQALhns66imacFJ+zqVYvtkSqleSil/pZT/2ofXMy2JuLAok5FwOzdn4pMu/PxHQsx9tKRT1RHLd5K3cqlMe/6XFRIcZjIy6unhRliqqSYp6+j1epycHImOjiEkJJ1tQ589TeWDLm3544/E+/ivWbOBmjWrZlYqOVZIcBieKf7OHh5uaaYDZdRGwSFpt/2njf5p5zt3oli7bktyW1y6dJXmLTpSu85brFy5jmvXgsyZnono8CiT6QIF3ZyJvh2dpl6lelV4p19bpvSYkDztAyCPQx6GLx7Fr9N+JvDkZYvE/DxRqXJydnMmJt2cKvNOv/eY2mOiSU7/iImIIfjyLV6tZf05pTmtnaLCoijk/nRU2dmtENERafOpUr8Kbfu1Z0L38em2UVZyO/QOru5PPyKLuBUmIjzyGVuYyutgz+yfpzF7ygLOnjhvjhBfWmx4NPlTfL7mdyvIvXTOJJWpV5HG/d7mfz2+wZCinXbOWcu3zYcxv8tElFJEXg+zSNzPEhselSon53RzKluvEr793mFBj6nJx17lprUIOhlI3MMnxD18woU9pyhRrUyabbM9GTm3qicp/m9MsWzk6R1nUtYxkPGdaJ5bT9O0BZqm1dA0rUYb+5L/LuJ03D91hdwl3chVtAjK1oaCresTs/2YSR3bFBd0FfCtyeNA652GOuZ/Ci+vkpQoURRbW1vatWvNho3bTeps2LidLl3aAvDuuy3YvedA8vp27VpjZ2dHiRJF8fIqydFjJ5/5fKFht/F+oy4AjXzqE3gl874Y5VSp26h9u9ZsTNVGGzNoo40bt9M+nTayt8+Dg0PiRXj29nlo0tib8+cvAVC4cOIHhVKKL4f3Z8EC0zs8mNOV04G4lXSjSNEi2NjaUM+vAf47jprUKVGhJL0m9WFK9wnci3o6v9LG1oYhC4bz12+7Obz5oMVifp6rpwNxLelG4aJF0Nva8Lpf/XRz6jGpL1O7TzTJqaCrM7a57ADI65iXsjVeJfRqKNaW09op8PRl3Eq6U6SoCza2NjTwe4OjO46Y1ClZoRR9JvVjQvfx3I3K+vN6z5+6QLFSnngUc8PG1oZmbRrz1/YXuyuOja0N3y2ezIbVW9ixYbeZI31xt05fpXAJVwp6FkZvq6ea3+uc22E6vcijQgnaTuzJ/3p8w/2oe8nrlU5hnz/xola3V4vh9moxLu07Y9H403MzVU7V/V7n7A5/kzqeFUrQYWIPFvaYapJTTGgkXrXLo9Pr0NnoKV27HLevBFs6BfEv5fRbKf4NZJ2r+AxGgkb8yCu/fIXS67iz4k8eXb6Fx5AOPDh9ldjtx3Dt3pz8vjXREowYYv/m6oDvrReuwUD/z0eyedMv6HU6lixdSUDAZcaMHoz/8dNs3LiDRYtXsHTJLC4G7CcmJpaOnROvvw0IuMyaNRs4e3o3CQYDn/UfkXxh0c/L5uD9Rl0KFSpI0DV/xo6bxuIlK+jdewjTp4/DxsaGJ48f06fPUKvlntqQ0ZM5dvIMsbH3eLNNZ/p278K7qS68tIZ/2mhTqjYaPXowx1O00ZIls7iQ1EadUrTR6jUbOJOqjVxcCrNm9f8A0NvoWbFiLdu37wGgQ/s29O7TFYC1azezZOlKi+VqNBj531cLGPHTGHR6HbtX/Ulw4C3aD+zI1TNX8N95lC5fdiO3fR4GzU08diJDI5nSYwJ1W9ajXK0K5MufD5/3GgEwZ/AsggKs+wXQaDCy6KuFfPnTaHR6PXtW7SQ48BZtB77PtTNXOL7zGJ2/7Epu+9wMSM7pDt/0mIiHlyddRnb7Z44SGxes49alG1bNB3JeOxkNRhaMmseYZeMSbw25cge3Lt+k48BOXDkbyNEdR+k24iPy2Odm6A/DkvK5w4Tu4wGYuGYKnqU9yZ03N/87soTZQ2Zxcu+JZz2l2RkMBiZ9OZ0ffv0OnV7P2l83cvXSdfoO7cH5Uxf5a/t+KlQtx3eLJuGYPx/eTerTd0h33vHuTNNWb1K9TlWcCjjSqn3iBeFf9Z/ApfOBVs3JaDDy+1eL6fXTl+j0Oo6u2s3twGCaDWjLrbPXOL/zOH7DO5HLPhcfzv0cgJiQSBb1nIbe1oZ+q8cA8OT+I5YPmJ0lprUYDUbWfLWIvkk5HV61h/DAYJoPaMvNs9c4t/M4rYd3xs4+N93mDgASc1rY8xtObT5M2dcrMmzbNNA0Lvx1inN/Wve4M4ssMKXKHFRWmCv2LEqpEsBGTdMqJi0vSVpe808ZsAa4r2natKQ654CWmqYFKaV+IXGu+hZgEzBY07SWSfVmA/6api3J6PmPuL+Ttf9AL6le5JHnV8pmHoXus3YImc7evcHzK2UzbdxqPL9SNqJL9yKS7M2Y0YT3bCxOM1g7hEwXFJd2Wk1292buYtYOIVMl5MDXEsCsoJVZ6o3v4YyPzfqHtv98vlXyzfIj55qmBQEVUyx3zagsxfqU9TumKt6ToqxfpgUqhBBCCCEsx4rzws0pu8w5F0IIIYQQIsfL8iPnQgghhBBCpGHFX/E0Jxk5F0IIIYQQIouQkXMhhBBCCJH9aDlzzrl0zoUQQgghRPYj01qEEEIIIYQQ5iQj50IIIYQQItvR5FaKQgghhBBCCHOSkXMhhBBCCJH9yJxzIYQQQgghhDnJyLkQQgghhMh+cuitFGXkXAghhBBCiCxCRs6FEEIIIUT2I3POhRBCCCGEEOYkI+dCCCGEECL7kfucCyGEEEIIIcxJRs6fo17kEWuHIJ4jj3sDlLWDyGQPQ/dZO4RM5176LWuHkOk0LefNd3wQ/8TaIWSqnNhGR12rWDuETLc8h72L26JYGnvK2mFkulnWDiA1mXMuRNaUs97SRXaREzt9Oa1jLoS15MSOubAcGTkXQgghhBDZj9znXAghhBBCCGFOMnIuhBBCCCGyH5lzLoQQQgghhDAnGTkXQgghhBDZjib3ORdCCCGEEEKYk4ycCyGEEEKI7CeHzjmXzrkQQgghhMh+cmjnXKa1CCGEEEIIkUXIyLkQQgghhMh+5EeIhBBCCCGEEOYkI+dCCCGEECL7kTnnQgghhBBCCHOSkXMhhBBCCJHtaDJyLoQQQgghhDAnGTkXQgghhBDZj4ycCyGEEEIIIcxJOueZqKlvQ86f28vFgP0MHfJJmnI7Ozt+Wf4DFwP2c3D/BooX90wu+2JoPy4G7Of8ub34NvE22U6n03Hs6DbW/bE0ed2C+dM47r+DE8d3sHLFAvLmtTdfYkkyOz9PT3d2bl/N2TN7OH1qF5/26272HHx9G3Lu3F4uBOxnSAY5LF/+AxcC9nMgVQ5Dh/bjQsB+zp3bS5MUbRR4+TAnT+zE/9h2Dh/anLy+cuXy7Nu7npMndvLHH0vIl8/BvMm9pJETp/NGiw606dzb2qE8U6M3G3DIfytHT27nswE905Tb2dmycPF3HD25na1/rqJoMQ8Aihbz4Gb4aXbvW8vufWv55ruxydus/O1Hdu9fx77DG/nmu7HodJZ9K2zUuAGHj2/l6KkdfDagV5pyOztbflw8g6OndrBt12qTnG7dPsPu/evYvX8d05JyypMnN7+uXsAh/63sP7KJUWMGWzQfgCZNvDl9ehfnzv3F4MF90pTb2dmxbNlszp37i71711KsWOJrq1Gj+hw4sJFjx7Zx4MBGvL1fT7Pt6tU/4u+/3ew5pNSkiTdnzuzm/Pm9DB7cN015Yj5zOH9+L3v3rkt+ryhYMD/btq0gMvIC3303zmSb997z49ixbZw4sZMJE760SB4ZcfCuzit//sAre+ZTuM97acoLvPcm5Y//TJnNMymzeSYF2/sCkLt8SUr//g1lt8+hzJZZOLWsb+nQX0hZ7yoM/vNbhuz5joZ9WqUpr92pMZ9vnUL/zZPovXo0Rbw8rBBl+nzerM/+Y5s5dGIr/T7vkabczs6W+Yumc+jEVjbvXEHRYu7JZeUqlGXj9l/569AGdh9YR65cdgAMG9mf4+d2cTXY32J5WITRaN6HlVjsE0kpFZ0OgTsAACAASURBVKSUKpTO+oPmfg5L0Ol0zJo5gZZ+nalUxYf27dtQrlwZkzofdXufmJi7vFq+PjNmLWTSxBEAlCtXhnbtWlO5aiNatOzE97MmmnQWPvu0BxcvBprsa9DgMbxWownVX2vCrZshfNK3W7bLLyEhgSFDx1KpckPq1fejT5+uafZpjhz8/DpTuYoPHTLIITbmLuXK12fmrIVMTJFD+3at+T/27jwsquoN4Pj3zDC4g4qIgPtSlqa4a2ru+56W5VKmZps/t9RMM5eszNxTc19yy9xLETcU9zUxV8QFlR0UxB2Yub8/BpERVCpmRuj9PA+PzD3nXt7Xy72c+94zdyp6NaR1GvuocZO3qFqtKTVrtUxeNmf2jwwf8R2VKjdm44YtfP556gGLPbVv2YTZk8fZO4xn0ul0jJ/0Ne906k3t6q3o0LE1L71cyqJP1/feIjY2juqVmjJ71mK+HvN4YBp05RoN6ranQd32DBk4Knl5rx79aVCnHXVrtqZAgXy07dDcpjn9MGkUnTt+SO1qLXmz09NyukV1rybMnrmYUWOGWOZUpx0N6rRjcIqcZk5fQK2qzWlQpz3Va1amUZM3bJrT1Knf0K7d+1Sq1Ji33mpL2bKWx1aPHp2JiblF+fL1+OmnBXz77TAAbtyIoVOnnlSr1owPPxzEwoVTLNZr1645d+/es1kuYM5n2rRxtGv3Pl5ejXj77bTziY29Rblyb/DTT/MZN+5LAB48eMiYMZMYNuxbi/758+fl+++H06LFu1Su3Bg3twI0aFDbZjlZ0OnwHPsxV3qM5kKTz8jb9g2ylS6Sqlvspr0EtuxPYMv+3Fxlvjgy3X/I9UGTudD0M668PxqPrz9E55TL1hk8k9Ip2o/9gIU9fmByk8FUbPt6qsG3/8b9TG3+BdNafonfnE20HtndTtFa0ul0fD9xJF069eGNGm3o0KlVqvNDl+6diI29Ra3KzZkz6xe+SroY1+v1zJw7gaGDRlOvVhvebP0+CQmJAGzz2U2LRp1tno/4Z2wyOFdK6Z/Wpmla6jJJJlS9WiUuXQriypVrJCQk8NtvG2nbpplFn7ZtmrJ06WoA1q7dTMMGdZKWN+O33zYSHx9PUNB1Ll0Konq1SgB4errTskUjFi5cabGt27fvJH+fPUd2NM26866skV94eCQn/E8DcOfOXc6fD8TTo5DNclj120baPJFDm6fk0KZNM1Y9ZR89zUsvlWLv3kMA7Ni5lw4dWj6zv61V9XoNZ6c89g7jmSpXqUDQ5atcDQomISGBDes206JVI4s+LVo2ZNWK9QD8sWErdevVeu5279y+C4CDgwMGgwGsfPykVLlqBa5cvsrVoOskJCSwfu1mWrRqbNGnRatG/LrSnNPvG3yoW//ZOd2//4B9ew8DkJCQwF8nz+BhxWPpSdWqeXHpUhBBSTmtXv0HrVs3sejTunUTli9fC8C6dd7Ur28emJ48eYawsEgAzp69QLZs2XB0NFf7cuXKSb9+vRk//ieb5QKP83l0rli9+g/atGlq0adNm6YsW7YGMOfzaKB97959Dhw4ysOHDyz6lyhRlMDAK0RH3wTA13cf7du3sEE2qeX0KkP81TDir0egJSQS+8cenJrWSNe68VdCiQ8KAyAx8iaJN27hkN/JmuH+bUW8SnPjajg3r0diTDBy8o+DvNq0qkWfh3fuJ3/vmDObTc8Bz1KpSgWuXL7GtatJ57y13jRr2dCiT7OWDflt5UYANm3cSp16NQGo37A2Z08HcPZ0AAAxMbGYkqq/fx47SWRElA0zsRGTZt0vO3nu4FwpNVQp1S/p+ylKKd+k7xsppZYppd5VSp1SSp1WSv2QYr07SqmxSqnDQK0Uy3MopXyUUh8+6pf0b32l1G6l1Bql1Hml1HKllEpqa5m0bJ9SarpSalPSchel1Dal1Aml1BxApfg5G5RSx5VSZ5RSfZKW9VJKTUnR50Ol1OR/8x/4iIdnIa4Hhya/Dg4JS/XHMWUfo9HIrVtxuLjkw8MjjXU9zetOnjSGYV+OSz7AUpo/bzIh1/0p+3JpZsxcmBFpPJW18nukWLHCeFUsz+EjJ6yaQ3CKOEJCwlJdDDwtB0+P1Os+ykHTNLZ4r+TwoS307tU1uc+ZMwHJf9A7dWxNkcIeiL/H3cONkJDw5NehIRG4u7tZ9Cnk7kZIiHmwYDQaiYu7Tf78+QAoWqwwvnvXs3HzUmrWqmKx3m/r5nPu0gHu3LnL7xu2WjmTx9zd3QgNTpFTaDjuHm6p+oQEPyunDfzuvYyatSwHHABOznlo1rwhe/wOWjELSx4ehQhOiheSjq0njnGPFMfQo5xcXPJZ9OnQoSUnT54hPj4egFGjPmfatHncu3cfW/JI63h/Yh+lJ5+ULl26yksvlaJYscLo9XratGlKYTudEwxuLiSERie/Tgi7gcHNJVU/5xavU2bLdIrOGobBPfVN6RwVy6AMDsRfDU/VZk/ObvmIDb2R/PpW2A2c3VLvm1rdmzDUbyoth3Vh4+glqdrtwd29IKEpznlhoanPee7uboSmOOfdjrtN/vx5KVm6OBqwcu08tvmt5bN+1p8qKqwjPZXzPUDdpO+rArmVUgagDhAI/AA0BLyAakqp9kl9cwGnNU2roWnavqRluYE/gBWaps1L42dVAgYArwIlgdpKqezAHKCFpml1ANcU/UcB+zRNqwT8DhRN0dZT07QqSTH3U0q5AL8CbZPiB/gAWPRkEEqpPkqpY0qpYybT3XT8F0HSdYSFJ6vZafd5+rqtWjYmMjKaP0+cSvNn9v5wEEWKVebc+UDefiv1nLqMZI38HsmVKye/rZrHoMGjLO4IZDRr5VCvfnuq12hO6zbd+OSTHtSpY65AfdhnEJ983IPDh7aQO08u4uMTMiKN/5R/vs80IsIjqVSuAQ3rdmDkiPHMnj+J3Hke335/+83elH+pDtmyOVI3qfJkC/84J8w5eZWrT8O67Rk5/HvmLLDMSa/XM3fhFObN+YWrQdczPvinSCPcdO+nR155pQzjxg2jb1/z9JAKFV6lZMni/P677S6cHvk3v3dPExt7i379RrB06Ux27lzD1avBJCYm/vtg/4m0d5jFy7gdRzhfpxeBLfpxZ78/RSYNsGh3cM1H0cmDCB4y7YWpOid7ynn8SQeXbmdCvQFsGb+CRv/rYIPAnu9px/5z+2jgoNdTo2ZlPvtwCO2ad6VF68bUecN25za7+K9WzoHjQBWlVB7gIXAQ84C3LhAL7NY0LUrTtERgOfBooqMRWPvEtjYCizRN++UpP+uIpmnBmqaZAH+gOFAWuKxp2pWkPinnd7wBLAPQNG0zEJOirZ9S6iRwCCgClNE07S7gC7RWSpUFDJqmpRr5apo2V9O0qpqmVdXp0jeXLiQ4zKIyWtjTnbCwiKf20ev1ODs7cfNmDCEhaawbGsHrr1elTeumXLxwiOXLZtGgQW2WLJ5usU2TycTq1b/zZodW6Yrzn7JGfmCeVrB61TxWrlzPhg1brJ5DykqVp6c7oenMITgk9bqPcnj0/xAVdYMNG7dQrZoXAAEBl2jZqgs1arZg1aqNXL4cZM30sqTQkHCLCqyHpxvh4ZEWfcJCw/H0dAfM+8zJKQ8xMbHExycQExMLwF/+Zwi6co1SpUtYrPvwYTw+3r60aGk5VcaaQkPD8SicIiePQoSHRabq41n4iZxuJuV005zTyaScSqfIafL0b7h8KYg5s2xbBQwJCadwUryQdGyFPnFspTiGHuV0MykXT89CrFo1l969B3HlyjUAatSoTOXKr3H+/D58fddQpkwJtm791Ub5pHG8P7GPnpXP03h77+CNN9pRv34HAgMvc/FiUIbHnh4J4dEYPB5Xwg3uLiRE3rToY4y9jRZvvni4uXIbOcqXTm7T5c5BiUWjCJ+0jHsnAmwT9N9wK/wmeT0e3wlwdnchLjLmqf1P/nGQck1S34Wyh9DQCIs7y+4ebmmeHzxSnPPyJJ3zQkMjOLj/KDdvxnL//gN2bt9DhYqv2jR+kTGeOzjXNC0BCMJcZT4A7AUaAKWAa89Y9YGmacYnlu0HWqi0LvvMHqb43oj5OexP65sc4pMLlFL1gcZALU3TKgIngOxJzfOBHjylav5PHT3mT+nSJShevAgGg4G3327HH5ssny7wx6ZtdO/+FgAdO7Zi1+79ycvffrsdjo6OFC9ehNKlS3Dk6AlGfDWe4iWrUvqlmnTt9im7du3n/R79AChVqnjydlu3akJAwMWMSsVm+QHMmzuJc+cvMnXaXKvGn1YOnd9ux6Ynctj0lBw2bdpG5zRyyJkzB7lzmy/gcubMQZPG9ThzxvzHytXV/MdBKcXwL/szd+5Sq+eY1Zz48xQlShWnaLHCGAwG2r/ZCh9vX4s+Pt6+dO5irnq1ad+MfXvM8/xdXPIlv2m3WPHClCxVnKtB18mVKydubuYbcHq9nsZN6xF44bLtcjp+ipIlH+fUoWMrfLx3psrpnXfNObVt35y9SVNULHMqQslSxQlKqpB/OXIATk55GPGF5RsRbeHYsZOULl2CYsXMx9Zbb7Vh8+btFn02b95B164dAXjzzZb4+ZmfBeDs7MS6dYv4+usJHDz4+EkS8+Yto2TJ6pQtW4eGDTsRGHiFZs3esWk+j84Vb73Vhk2bLPPZtGk73bp1Ss5n9+7nP9vg0Tkhb15n+vTpzqJFK5+zhnXcOxmIY3EPDIXdUAYH8rZ5g7jtRyz6OLg+ngbi1KQ6Dy6Zf8+UwYFic0YQs86XW977bRp3egWfvIRL8ULkK+yK3qCnYptanNt+3KKPS/HHA+CyDSsRHfRiTM3x//MUJUsVo2gxT/M5r2NLtm3ZZdFn25ZdvP1uOwBat2vG/qRz3u6d+3il3MvkyJEdvV5PrdrVuBBwyeY52JKmaVb9spf0fgjRHmAw0BM4BUzGXFE/BExNekJKDPAu8Kx37nwNjARmAel9dMV5oKRSqrimaUFAyrcb7wG6AuOUUi2AR2cTZyBG07R7SRXy5Ps6mqYdVkoVASoDFdIZw3MZjUb6D/gK780r0Ot0LF6yirNnLzB61GCOHT/Jpk3bWbjoV5Ysns75s/uIiYmlSzfz47nOnr3AmjV/cOrkLhKNRvr1H5HmHPNHlFIsWjCVPE65UUrx119n+SzpVrC1WCO/2q9Xo3u3Tvx16izHjpoHySNHjmeLj++zQvnXOWx+IodRowZzPEUOixdP51xSDl1T5LB6zR/89UQObm6urFm9AAC9g55ff93Atm27AXinc3s+/qQHABs2eLN4ySqr5PVPDRk1nqMn/iI2No5G7bvxaa/udHziDbL2ZjQa+XLwWH5bNx+dXs/KZWsJOH+RL4b3w//EabZu8WX50jXMmvsjR05sIybmFn16DgSgVu1qfDG8H4mJRkwmI4MHjiI25hauri4s/fVnHB0d0et17NtziMULbVORfZTTsCFjWb1+ATq9nhVL1xBw/iLDRvTD/8/T+GzxZfkvq805+W8nNuYWH37wOKdhI/qbczIaGTzga2JjbuHu4cbnQz7lQsAlfPduAGDB3GUs+2W1zXIaOPBr/vjjF/R6PUuW/Ma5c4GMHDmIP//8i82bd7B48SoWLpzC6dN+xMTE0r17XwA+/vh9SpUqzrBh/2PYsP8B0KZNd6KibjzrR1o9nwEDRvLHH0uT8lnFuXMX+PrrQRw/forNm7cn5TOVM2f2cPNmLO+91zd5/YCA/eTJkwdHRwNt2jSjdetunD8fyKRJo3ntNXMl87vvpnLx4pWnhWDlBE2Efj2bkr+MAb2OmN928DDwGm4Du3L/VCBxO45Q4IM2ODWugWY0Yoy9TfDgaQA4t6pD7urlcMiXh3ydzHecrg+eyoOzdsolDSajiY1fL6bXL1+i0+s4+ttuIgKDaTKwE8GnrnBux3Fef78pZWq/hjExkfu37vLb5z/bO2zA/Ls3fMg4Vq6dj16vY+WydQScv8jQ4f/D/8Rptm3ZxYqla5gx5wcO/ulDbMwtPur5OQC3bsUxZ+ZifHxXo2kaO7fvYcc2PwBGjhlMh06tyJEzB3+eMW9j4viZ9kxVPINKz5WBUqoR4APk1TTtrlLqAjBb07TJSqkuwJeYK9zemqYNTVrnjqZpuVNsIwjzdJgbwEIgStO0oY/6JVW7B2ua1jqp/wzgmKZpi5VSbYAfgWjgCOCmaVrXpHnkK4ECgB/wJlAFuA1sADyBAMzz1EdrmrY7advDAC9N055bhnFw9HzBJtOJJz3v1kpmdC90r71DyHAepezzZAprsWdVxVruJjx8fqdMJivupyOFKto7hAy3nBfrcyD+rSWx/vYOwSrCY8+9UH9y4z5satUD3GneNrvkm67KuaZpOwFDitcvpfh+BbAijXVyP/G6eIqXHzzZL2ngvDvF8r4p+u/SNK1s0nSYmcCxpD43gJTPtxqY4vtnjQTqAFOe0S6EEEIIIYTNZZZPCP1QKeUPnME8ZWXOP9mIUipvUtX/ftIFhxBCCCGEyIyy6NNa0jvn3K40TZtCBlS6NU2LBV56bkchhBBCCCHsIFMMzoUQQgghhEhJs2N125pkcC6EEEIIITKfLDo4zyxzzoUQQgghhMjypHIuhBBCCCEyn6d/JEymJpVzIYQQQgghXhBSORdCCCGEEJlOVn1DqFTOhRBCCCGEeEFI5VwIIYQQQmQ+UjkXQgghhBBCWJNUzoUQQgghROYjT2sRQgghhBBCWJNUzoUQQgghRKYjT2sRQgghhBBCWJVUzoUQQgghROaTReecy+D8Oaq5vmTvEDJUQFywvUPIcI3yv2rvEDKcR6kW9g4hw4Ve2mLvEDKWMcHeEWS46hV72juEDJdbn93eIWS4bNkT7R1ChutJrL1DyFBD6xa0dwgiE5PBuRBCCCGEyHRkzrkQQgghhBDCqqRyLoQQQgghMp8sOudcKudCCCGEEEK8IKRyLoQQQgghMh1NKudCCCGEEEIIa5LKuRBCCCGEyHyyaOVcBudCCCGEECLTkWktQgghhBBCCKuSyrkQQgghhMh8pHIuhBBCCCGEsCapnAshhBBCiExH5pwLIYQQQgghrEoq50IIIYQQItORyrkQQgghhBAimVKquVIqQCl1USk17Cl93lZKnVVKnVFKrXjeNqVyLoQQQgghMh17V86VUnpgJtAECAaOKqV+1zTtbIo+ZYAvgdqapsUopQo+b7tSORdCCCGEEOLvqw5c1DTtsqZp8cCvQLsn+nwIzNQ0LQZA07TI521UBuc2ULN+NX7ds4TV+5bR/bN3U7V71ajAYp857L26gwat3rBo23dtB0u2zWPJtnlMWDTOViGnqVHjuhz+cyvH/HfQf1CfVO2Ojo4sWDyVY/472O67hiJFPS3aPQu7cy3Mn779eiUv++SzHhw44s3+w5uZt3AK2bI5Wj2Pp/GqV4lpvrP4yW827T/pmKq9de+2TNkxg4k+0/h6xVgKeLoCUPzVEny7/gcmb/+JiT7TeL11HVuHnqxho7ocPObDkRPb6Dfww1Ttjo4G5i2awpET2/DZ+VvyPipS1JNr4SfZtXcDu/Zu4McpY5LXWbV2Prv2bWTvoU38OGUMOt2Le9r46rvJvNHqHdp3+9jeoaTbvsPHad31E1q824f5y9akag8Nj6TXgK/o0ON/9Og3nPDI6OS2yT8vpv37fWn/fl+27Nxry7Cf6fUGNVi/byUbD67ig77dUrVXrlmRFdsWcjTYj8at6ycvdy/sxvKtC/h1x2LW+C2j03vtbRj101WvX43lexazct8vdP3snVTtFWu8xgKf2ey6uo36T5zDC3oUZNKKH1i6eyFLdy2kUGE3W4X9TDnrVKHElnmU2LqA/B++lardqUNjSh34lWLrZ1Bs/QycOzWzaNflyklJv6UUHPmJrUJ+rqyYk6FydfL+vJS8c5aTvVOXNPs41mmA88wlOM9cTO7BIwHQubrhPGUuztPm4zxzMdmat7Vl2LajKet+PZ8ncD3F6+CkZSm9BLyklNqvlDqklGr+vI2+8NNalFJ5gS6aps2ydyz/hE6n4/Nv+9P/3SFEhkWx0Hs2e7cdICjwanKf8JAIvhn4A10/7pxq/YcP4nm/aepBlq3pdDomTBrNm+16EBoSzk6/tfhs9iUg4GJyn27vdSI2No6qXo15s2MrRo8dQq8eA5Lbvxs/gp3b9yS/dnd3o8/H71GrWgsePHjIwiXTeLNTa1YuX2fT3MCcX69vPuKbrqO4GX6D73+fyLEdRwgOfHzMXTlzhS9aDyL+QTxNuzWn+5c9mNL3Rx7ef8hPA6cSHhRGvoL5+WHzJPz3nOBe3F2b5zB+0te81f4DQkMi2LZrDT7evlwIuJTcp+t7bxEbG0f1Sk1p37ElX48ZzIcfDAQg6Mo1GtRNPRjq1aM/d26bc1m0dDptOzRnw1pv2yT1N7Vv2YQuHdsy/JuJ9g4lXYxGI+OmzGHe5LEUcnWhc5/PaVCnOqWKF03uM3HWQto2a0C7Fo04fPwkU+f+wvivBuF38ChnAy+xZsE04hMS6NFvOHVrViF3rpx2zMj8ezjs+8/55O0BRIRFstxnPn7b9nH5QlByn7CQCEb1/5b3PrUsVkRF3KBHm49JiE8gR84crPFbit/WfURFRGMvOp2OQd/2Y+C7Q4kKi2Ke9yz2bztocQ6PCInku4ETeOfj1APCr6Z9wS/TV3Bs73Fy5MyOyaTZMvy06XS4ff0ZwT2HkxARTbHV07jje5j4S9csut3e4kfkNz+nuYkC/btz/+gpW0SbPlk0p1wfDyBu5OeYbkThPHkOCYf3Y7z++HdP5+5Jjk5diRv6GdrdOyjnvACYYm5wa8hnkJgA2XOQd8Yi4o/sR7t5w17ZZEpKqT5AymrkXE3T5qbsksZqTx7kDkAZoD5QGNirlCqvaVrs037ui1sCeywv8Km9g/inXq1UluCgUEKvhZGYkMiOjb680ay2RZ/w4AgunbuMyfTivu24StUKXLl8latB10lISGDd2s20aN3Iok/LVo35dYV5YL1xgw9v1K/1uK11Y4KCrnP+XKDFOg4ODmTPkR29Xk+OnDkID3vu3R6rKO1VhvCgcCKvR5CYkMj+P/ZStUl1iz5nDp4i/kE8ABdOBJDf3QWAsCuhhAeFARATeZNb0bdwyu9k2wSAylUqEHT5KleDgklISGDDus20aGW5j1q0bMiqFesB+GPDVurWq5XWpiw8Gpg7ODhgMBhAewEGF09R1es1nJ3y2DuMdDt1LpCinu4U8SiEwWCgRaO6+O47bNHnUtB1alSpCED1yhXYldR+Keg61SqWx8FBT84c2Xm5VHH2Hf7T5jk8qXylV7h+JZiQa6EkJiSydcNO6jera9En7Ho4gecupRqoJiYkkhCfAIBjNgNKpatyZVWvVCpLSFAIYUnn8J0bd1Gn2esWfR6dw7Un8ilephh6Bz3H9h4H4P69Bzx88NBmsT9N9govkXAtlITgcEhI5La3H7kb1Uz3+tnKlUbvko+7++3/+/ZIVszJocwrGMNCMEWEQWIiD/f4YqhheWc2e7M2PPBej3b3DgDaraTxXmKieWAOKIMBXuA7nv+GZrLyl6bN1TStaoqvuU+EEAwUSfG6MBCaRp+NmqYlaJp2BQjAPFh/qsywt8YDpZRS/kqpH5VSQ5RSR5VSfymlxgAopYorpc4rpeYrpU4rpZYrpRon3UIIVEpVT+o3Wim1VCnlm7Tc6iVp10IFiAx9POCMDIvCtVCBdK/vmM2Rhd6zmffHzFSDeltydy9ESEhY8uvQkHDc3S1vz7p7uBESHA6YK4Jxt+6Q3yUfOXPmoP/APkz4/ieL/mFhEcyYvoC/zvpx7uIB4m7dZpfvPusnk4b8hVy4Efa4Oncz7AYuhVye2r9R5yac2H081fLSFcvg4OhAxNVwq8T5LO4eboSEPP65oSERqfZRIXe35P1oNBqJi7tN/vz5ACharDC+e9ezcfNSataqYrHeb+vmc+7SAe7cucvvG7ZaOZP/jsjoGxQq+Ph84OZagMgoy8rWy6VLsN3vAAA79hzk7r37xN6K4+VSJdh7+Dj3HzwkJjaOoydOER4ZZdP401LQ3ZWIFOe8iLBIXN1d072+m0dBVvkuYcvx9SyeudyuVXN4dA5//P8aFRZFgXSew4uULMyduLuMmzeaBVtn8+lXfV6IaWEObgVICHucU2J4NA5uqc93eZrUofjGWXhMG4HDo5yVouAXHxL143xbhZsuWTEnnUsBTNGPjyXTjSj0Lpa/e3rPwug9iuD0wwycfpyFofLjopKugCvO0xeSb9Fq7q9ZIVVz6zgKlFFKlVBKOQLvAL8/0WcD0ABAKVUA8zSXy8/aqP3PEs83DLikaZoXsB3z1UZ1wAuoopR6NMGvNDANqACUBboAdYDBwPAU26sAtAJqAV8rpTysGXxalR/tb1QeO1TvTM+WHzPqs3EMGNMXz2JWDfep0ipgPZnH03IdNqIfP89YxN279yzanPM60aJVIyq91pBXy9QmZ64cvNX5xZkX97T9VLdDPUq+Vprf56y3WJ63YD7+N2UgswZP/1v7OKOk53ftaX0iwiOpVK4BDet2YOSI8cyeP4nceXIl93n7zd6Uf6kO2bI5Urde+qtR4tnS+j15ch8N/vQDjvmfplOv/hzzP4Obqwt6vZ7a1StRt2ZVun06lCFjf6RiubLo9Xpbhf50aZ8s0r16RGgknRu+T7tanWnzdgvyF8iXgcH9A2netE5fPnoHPRWql2fmN3Po0/JT3Iu60+LtZs9f0R6eSOnOrsNcbtSDoHafcvfACQqN/xyAvF1ac9fvKInh9r1oSpfMnlOa5+snFuj16D0KEze8P3cmjiXX/4agcuUGwBQdxa1+PYnp04XsjZqj8tr5WLICzaSs+vXcn69piUBfYCtwDvhN07QzSqmxSqlHA5qtwA2l1FlgFzBE07RnXim98HPOn9A06etE0uvc2wo6KQAAIABJREFUmAfr14ArmqadAlBKnQF2apqmKaVOAcVTbGOjpmn3gftKqV2YB/obUv6QlHOMSji/hFuufz4gjgyLoqDH46fmFHR3JToi/Vevj/qGXgvjz4P+vFS+NCFXn7xjYn2hoeF4eronv/bwLER4uOUUlNCQcDwLFyI0NBy9Xo+Tc25ibsZSpWpF2rZrzuhvhuLs7ITJZOLBg4dERUZz7WowN6JvArDp921Ur1GZ1auevOi0vpvhN3Bxf1yRyO/uws2Im6n6vVa7Im/2fYtRb48gMT4xeXmO3Dn4ctFIVk5cRuCJCzaJ+UmhIeF4ehZKfu3h6ZZqH4Ul7cew0AjzPnLKQ0yM+TZofLz537/8zxB05RqlSpfg5InTyes+fBiPj7cvLVo2wm/XARtklPW5uRaweINnRFQ0rgXyW/QpWMCFad+a6wv37t1nx54D5MltvnD66L23+ei9twEYOnYixQrb5+I9pcjQSNxSnPPc3AsS9Q8GPVER0VwKuELlmhXZsWl3Bkb4N+MIi6agx+PKv+vfOIdHhkURePoiYdfMd6v2bd3Pq5VfZfOvW6wSa3olRkRjSHE3w6FQARIjLXMyxd5O/v7Wah9cB/cEIIfXK+SoUo68XVqjcmZHGQyY7j4gevIi2wT/FFkxJ1N0FLoCj48lnYsrppvRqfokBpwFoxFTRDimkOvoPApjDDyf3Ee7eYPEa0EYXq1A/AE/m8X/X6Fpmjfg/cSyr1N8rwGDkr7SJTNUzlNSwPeapnklfZXWNG1BUlvKiXymFK9NWF6EPHndmaoEknKO0b8ZmAOc8z9PkRKeuBcphIPBgcbtGrJ3W/oGNnmcc2NwNADgnM+JCtXKc+XC1eesZR1/Hj9FyVLFKVqsMAaDgTc7tsJn806LPlu8d/JOlzcBaNe+OXv9DgHQqlkXvMo3wKt8A2bPWsyUSbOZP3cZwcFhVK3mRY4c2QF4o34tizcv2tLFk4G4l3CnYJGCOBgcqN2mLse2H7HoU7xcCfp8/wk/9PqWuBu3kpc7GBwYMvdL/Nbu4pC3/QatJ/48RYkU+6j9m63w8fa16OPj7UvnLh0AaNO+Gfv2mPeRi0u+5NvtxYoXpmSp4lwNuk6uXDlxczP/wdPr9TRuWo/AC8+8Gyf+hvJly3AtOJTg0HASEhLYsnMvDWrXsOgTExuX/H6UecvX0KFlY8A8LSn2VhwAAZeucOFSEK9Xq2TbBNJwxv88RUsWxqOoOw4GB5q1b8TubembrlbQ3ZVs2c1PbMrjnAevaq8RdPHac9ayrvP+5ymc4hzeqF0D9qXzHH7eP4A8efOQN78zAJVrVyLITufwlB6cuoChmAcGTzcwOJCnZT3u+B6y6KN3fVxlzd2wJvGXzG+ODxsygcsN3+dyox5ETZhP3MYddh/EQtbMKTHwPHqPwujcCoGDA9neaEjCkf0WfeIP7cPhNfNxr5yc0XkUwRQeis7FFRzNx5LKlRvDK+UxhlxP9TMyO2vPObeXzFA5vw08eofXVuAbpdRyTdPuKKU8gYS/ub12SqnvgVyY3zmb5qc5ZRSj0cSkr6YzdcUEdDodm1Zt4cqFID4c/AHnTgawb/sBXqn4MuMXfEMe59zUaVKL3p9/QNeGH1C8TDG+GD8Ik6ahU4qlM1ZaPCHAloxGI0MHj2HNhoXodXqWL13D+fMX+XJEf06cOIWPty/LflnN7HkTOea/g5iYWHonPQXkaY4fO8nvG3zYtW8DxkQjf508y5JFq2yUkSWT0cSCr+cy4pfR6PQ6dv22k+DA63Qe1IVLf13k2I4jdB/+Adlz5uDzWUMBiA6N5ofe31KrdW1eqV6OPHnz0KBTQwBmDp5O0NkrNs3BaDTy5eCx/LZuPjq9npXL1hJw/iJfDO+H/4nTbN3iy/Kla5g190eOnNhGTMwt+vQ076NatavxxfB+JCYaMZmMDB44itiYW7i6urD0159xdHREr9exb88hFi/81aZ5/R1DRo3n6Im/iI2No1H7bnzaqzsd27yg0wgABwc9wwd8xEeDR2M0mejQsjGlSxRlxoLllHu5NA3q1OCo/ymmzvkFpRRVKpbjq4Hmx0QmJhp5r++XAOTOlYPxXw3CwcH+01qMRiM/DJ/CrJWT0en1bFy5icsBV/hkaG/O+p/Hb9s+XvUqy+SF3+OUNw9vNKnNx0N606leN0qUKc6g0X3N9+6V4pefV3LxvH0vBo1GE1O++olJK35Ap9OxedUWgi5cpdfgHpw/GcD+7QcpW/Flvl0whjzOuXm9SS16fv4+7zXshclkYubYOUxdNREUXDgVyB8rNts1H3NSJiK/+ZnCC8aBTs+ttduIv3gNl/9158HpC9zddZh83duRu0FNNKMR063bhH85yd5RP1tWzMlk5O7sqTiNmQg6HQ93eGO8FkSOrj1JDDxPwpEDJPx5BEOlajjPXAImE/cW/Yx2Ow4Hr6rk6fkp5vqj4v76VRivSmEls1D2mBv7dyV91GkFYAvmd732Tmq6A3QDjMAmTdPKJ/VfnPR6jVKq+KM2pdRowAMoBRQFJmiaNu9ZP7uWZ4MX/z/obwiIC7Z3CBmuUf5X7R1Chtsde/75nTKZ0Ev2vZWf4Yx/ty7w4qtesae9Q8hwufXZ7R1Chpufx36fByHSp0CZe8/vlAm5/OFn/0copRBSq6FVx2ieB33tkm9mqJyjadqTT96flka38in690jxfVDKNuCCpmmpP0FHCCGEEEIIO8sUg3MhhBBCCCFSsue8cGv6Tw3ONU0bbe8YhBBCCCHEv5eexx1mRpntaS1CCCGEEEJkWf+pyrkQQgghhMgaMsEzTf4RqZwLIYQQQgjxgpDKuRBCCCGEyHRkzrkQQgghhBDCqqRyLoQQQgghMh2pnAshhBBCCCGsSirnQgghhBAi05GntQghhBBCCCGsSirnQgghhBAi05E550IIIYQQQgirksq5EEIIIYTIdDRNKudCCCGEEEIIK5LKuRBCCCGEyHQ0k70jsA4ZnP/HvOxUmIC4YHuHkaF0ZL3bWlpWfD6UMcHeEWQ8vcHeEWQoB53e3iFkuBy6rLWPAJTKgueHLEbJvATxL8jg/D8mqw3MhbCbLDYwF0KIzMYkc86FEEIIIYQQ1iSVcyGEEEIIkenI01qEEEIIIYQQViWVcyGEEEIIkelk1U8IlcG5EEIIIYTIdLLig81AprUIIYQQQgjxwpDKuRBCCCGEyHSy6rQWqZwLIYQQQgjxgpDKuRBCCCGEyHTkQ4iEEEIIIYQQViWVcyGEEEIIkenIhxAJIYQQQgghrEoq50IIIYQQItOR55wLIYQQQgghrEoq50IIIYQQItORp7UIIYQQQgghrEoq50IIIYQQItORp7WIf6xm/Wr8umcJq/cto/tn76Zq96pRgcU+c9h7dQcNWr1h0bbv2g6WbJvHkm3zmLBonK1CTlOjxnU5/OdWjvnvoP+gPqnaHR0dWbB4Ksf8d7Dddw1FinpatHsWdudamD99+/VKXubknIfFS3/i0HEfDh3zoVp1L6vn8TQV61Viiu9Mpvn9TLtP3kzV3qp3Wybt+IkJPlP5asVYCni6AlDA05XvN03iB+8pTNw+ncZdm9k69GQNG9fl0HEfjvhvp9/AtPaRgfmLpnLEfztbfVcn76MiRT25HvEXu/ZtZNe+jUycMgaAHDmys3L1XA4e82Hf4c2MHD3Ypvk8ad/h47Tu+gkt3u3D/GVrUrWHhkfSa8BXdOjxP3r0G054ZHRy2+SfF9P+/b60f78vW3butWXY/9hX303mjVbv0L7bx/YO5W+pVb86a/YuY93+Fbzft2uq9ko1KrJ063wOXvOlYat6qdpz5c7J5uNrGfLtAFuE+1xV61dhwe75LNq7kM6fvp2q/bUa5ZnpPYMtVzZTt2Udi7bew3sxd8cc5vvO5dMxn9gq5OfKWacKxb3nU9xnIfl6p87JqX0TSu7/laLrZlJ03UycOjW3aNflyknJ3cso+NWntgr5ubJiToZK1XGetRTn2cvJ3rFLmn0cazfAecYSnH5aTK5BIwHQubrhNGkuTlPm4/TTYrI1b2vLsMW/9MJXzpVSwzVN+87ecfxTOp2Oz7/tT/93hxAZFsVC79ns3XaAoMCryX3CQyL4ZuAPdP24c6r1Hz6I5/2mH9oy5DTpdDomTBrNm+16EBoSzk6/tfhs9iUg4GJyn27vdSI2No6qXo15s2MrRo8dQq8ej/+4fjd+BDu377HY7vcTvmLnjj306P4/DAYDOXJmt1lOKSmdjp7ffMS3XUdxI/wG3//+I8d2HCEkMDi5T9CZy3zZ+nPiH8TTpFtzun75PtP6TiQmMoaRb35BYnwi2XJmZ+K26RzffoSYyBib5qDT6fhh0ig6tfuA0JBwtu9ei4/3Ti4EXEru0/W9t4iNvUV1ryZ06NiKUWOG0PsD8z4KunKNBnXapdruzOkL2Lf3MAaDgXV/LKFRkzdS7UdbMBqNjJsyh3mTx1LI1YXOfT6nQZ3qlCpeNLnPxFkLadusAe1aNOLw8ZNMnfsL478ahN/Bo5wNvMSaBdOIT0igR7/h1K1Zhdy5cto8j7+jfcsmdOnYluHfTLR3KOmm0+kY+t1A+r4ziIiwKJZ4z2XP1n1ceeKcN2bAd3T7+J00t/Hx0N78ecjfViE/k06no++4zxjWZTjRYdH8tGk6B7cf4lrgteQ+kSFRTBw0iU4fdbRY99Uqr1Cu6qt83NQ8KJ+8bhIValbgr0N/2TSHVHQ6Co78jJBew0mIiKbYb9O5u+sQ8ZeuWXS7s2UPkeNmpbkJl37vce/oKVtEmz5ZNKecHw3g9qjPMd2IwmniHOKP7Md0/fGxpHP3JHunrsR98Rna3Tso57wAmGJuEPfFZ5CYANlz4Dx9EfFH9qPdvGGvbKxCntZiP8PtHcC/8WqlsgQHhRJ6LYzEhER2bPTljWa1LfqEB0dw6dxlTCaTnaJ8vipVK3Dl8lWuBl0nISGBdWs306J1I4s+LVs15tcV6wDYuMGHN+rXetzWujFBQdc5fy4weVmePLl5/fVqLF2yGoCEhATibt22QTaplfYqQ0RQGJHXIzAmJHLgj31Ua1LDos+Zg6eJfxAPQOCJAFzcXQAwJiSSGJ8IgMHRgE5nn9tslZ/YR+vXbqZFq8YWfVq0asSvK9cD8PsGH+qm2EdpuX//Afv2HgbM++evk2fw8ChknQSe49S5QIp6ulPEoxAGg4EWjeriu++wRZ9LQdepUaUiANUrV2BXUvuloOtUq1geBwc9OXNk5+VSxdl3+E+b5/B3VfV6DWenPPYO428pV+kVrgeFEJJ0ztu+cSf1mllWk8OCw7l47jKaKfVf1rKvvUR+13wc9jtqq5Cf6WWvlwkNCiP8WjiJCYn4/e7H600tj5uI4AiunL+C9sRIQdPAMZsjDo4OGBwNOBj0xETb9qI9LdkrvEzCtTASgsMhIZE4bz9yNXz2uSClbK+WRl8gL/f2vzjHUFbMyaHMK5jCQzBFhEFiIvF7fXGsbnksZWvahofe69Hu3gFAuxVrbkhMNA/MAWUwgC4zDPfEIy/U3lJKbVBKHVdKnVFK9VFKjQdyKKX8lVLLk/p0U0odSVo2RymlT1p+Ryn1Q9L6O5RS1ZVSu5VSl5VSbZP69FBKbVRK+SilApRSo6ydk2uhAkSGRia/jgyLwrVQgXSv75jNkYXes5n3x8xUg3pbcncvREhIWPLr0JBw3N3dLPt4uBESHA6Yq5xxt+6Q3yUfOXPmoP/APkz4/ieL/sWKFyE6+iYzZv/A7n0bmTbjW3LmzGH9ZNKQv1B+boQ9ngJxI+wG+Qrlf2r/Bp0b47/78Uncxb0AE3ymMuvQfDbOXmfzqjmAu7sboUn//wChoeG4e7il6hMSbN6PRqORuLjb5M+fD4CixQrju3cDv3svo2atqqm27+Sch2bNG7LH76AVs3i6yOgbFCr4+Nhxcy1AZJRlFejl0iXY7ncAgB17DnL33n1ib8XxcqkS7D18nPsPHhITG8fRE6cIj4yyafz/Fa6FChCR4pwXERaFq7trutZVSjFg1GdM/+Zna4X3txUo5EJU6OPflaiwaFwKuaRr3XN/nsP/4El+PbaCX4+v4Jjfca5fvG6tUNPNoaALieGPc0qMiMbgljqn3E3rUGzDz7hPHYHDo79bSuH6RR+if5xvq3DTJSvmpFwKYIx+fCyZbkShc7EcP+g9CqPzKEKe8TNwmjALQ6XqyW26Aq44TVtI3gWrebBuRZarmoP5aS3W/LKXF2pwDvTUNK0KUBXoB/wI3Nc0zUvTtK5KqVeAzkBtTdO8ACPwaEJjLmB30vq3gXFAE6ADMDbFz6ietI4X8JZSKtUoJOnC4JhS6ljE3dB/lZBSqXfuk9WVZ+lQvTM9W37MqM/GMWBMXzyLefyreP6pNNJIlcfTch02oh8/z1jE3bv3LNocHPRU9CrHovkrqF+nHffu3mfAoI8yNO70UqSVYNp963SoR6nXSvP7nPXJy26ERTO0+QD6v/Ex9To2wLmAs5Uifbr0/K6l2QeNiPBIvMrVp2Hd9owc/j1zFkwid55cyX30ej1zF05h3pxfuBpkn8FFWsfNk/kM/vQDjvmfplOv/hzzP4Obqwt6vZ7a1StRt2ZVun06lCFjf6RiubLo9Xpbhf6f8m/OeZ16dGC/7yGLwb3d/Yt8PIq7U7R0UbpU78a71bri9boXr9Uon9ER/n3pyOnO7kNcafQ+V9t/wr2DJyj0vfn9Jnnfbc3dPUdIDI9OtQ27yoo5pefvkl6P3qMwt0f0587EseTqOwSVKzcApugo4vr3JPbjLmRr0BzlnM/6IYsM8aLNOe+nlOqQ9H0RoMwT7Y2AKsDRpD8AOYBHZ/F4wCfp+1PAQ03TEpRSp4DiKbaxXdO0GwBKqXVAHeBYyh+iadpcYC5ALc8G/2pGU2RYFAU9Cia/LujuSnRE+q9eH/UNvRbGnwf9eal8aUKu/rsLhn8iNDQcT0/35NcenoUID7f8AxoaEo5n4UKEhoaj1+txcs5NzM1YqlStSNt2zRn9zVCcnZ0wmUw8ePCQ3zf4EBoSzvFjJwHYuNHHboPzG+E3cHF/XJFwcXchJuJmqn6v1a7Am307Mfrtr5KnsqQUExlD8IXrlK3+Koe9bVthDg0Nx6Pw4yknHh6FCA+LTNXHs7A7YaER5n3klIeYm+bboPFJ/570P0PQlWuULl0C/xOnAZg8/RsuXwpizqwlNsomNTfXAhZv8IyIisa1gOXdjYIFXJj2rXkm3L1799mx5wB5cpsvMj56720+es/8JrGhYydSrLB9LnSzusiwKNxSnPPc3F2JTuegp0KVcnjVqECn99uTM1cOHAwG7t+9z4zv5lgr3OeKDovG1eNx5d/VvQA30zg3pKV2s9qcP3GeB/ceAHB011HKVirLqcOnrRJreiVGRONQ6HFODm4FSIy0zMkU+3iK4a3VPhT43PxG/uxer5CjSnnyvtsGXc7sYHDAdO8+0ZMX2Sb4p8iKOWk3otAXeHws6VxcMd20PJZMN6JIDDgLRiOmyHCMIdfRuRfGePH84+3cvIHxehAO5SqQcMDPZvHbgjytxcqUUvWBxkAtTdMqAieAJ98dqIAlSZV0L03TXtY0bXRSW4L2+DLZBDwE0DTNhOVFyJODbau+neCc/3mKlPDEvUghHAwONG7XkL3bDqRr3TzOuTE4GgBwzudEhWrluXLh6nPWso4/j5+iZKniFC1WGIPBwJsdW+GzeadFny3eO3mni/kpJ+3aN2ev3yEAWjXrglf5BniVb8DsWYuZMmk28+cuIzIympCQMEqXKQFAvXq1CDh/EXu4dDKQQiXccS1SEL3Bgdfb1OHY9iMWfYqXK0Hv7z9lQq/viLtxK3l5/kIuGLI5ApDLKRcvVS1L6CXbX0CdOH6KkiUf76MOHVvh4225j3y8fXnnXfP1b9v2zdmbNEXFxSUfuqQ5icWKF6FkqeIEJVXIvxw5ACenPIz44lsbZpNa+bJluBYcSnBoOAkJCWzZuZcGtS3fFxATG5f83o15y9fQoaV5zr3RaCT2VhwAAZeucOFSEK9Xq2TbBP4jzvqfp2iJwngUccfB4ECTdo3Ys21/utYd2fcb2lR7i3Y1OjNt7Cy812y168AcIOBkAJ7FPShUxA0HgwP12tbj4PZD6Vo3MjSS12q8hk6vQ++gp0LN116IaS0PTgVgKOaBg6cbGBxwalmPu7ssc9K7Pr7wzd2wJvGXzW+sDB86gSuN3uNK4/eJmjCf2xt32n0QC1kzp8TA8+jcC6MrWAgcHHCs25CEI5bHUsKhfRheM5/LVB5ndJ5FMEWEolxcwdH8d0nlyo1D2fKYQuz/uyfS50WqnDsDMZqm3VNKlQVqJi1PUEoZNE1LAHYCG5VSUzRNi1RK5QfyaJr2d0asTZLWuw+0B3pmZBJPMhpNTPpqOlNXTECn07Fp1RauXAjiw8EfcO5kAPu2H+CVii8zfsE35HHOTZ0mtej9+Qd0bfgBxcsU44vxgzBpGjqlWDpjpcVTXmzJaDQydPAY1mxYiF6nZ/nSNZw/f5EvR/TnxIlT+Hj7suyX1cyeN5Fj/juIiYml9wcDn7vdLwZ/w5z5k3B0NBAUdJ2+nwyzQTapmYwmFn49j+G/jEKn17P7tx0EB17nrUHvcvmvixzfcZRuw3uQPWd2Bs4aCkB0aBQ/9v4Oz9KF6f7VB+Z3fynFprkbuR5g+/1kNBoZNmQsq9cvQKfXs2LpGgLOX2TYiH74/3kany2+LP9lNbPm/sgR/+3Extziw6R9VKt2NYaN6E9iohGT0cjgAV8TG3MLdw83Ph/yKRcCLuG7dwMAC+YuY9kvq22en4ODnuEDPuKjwaMxmkx0aNmY0iWKMmPBcsq9XJoGdWpw1P8UU+f8glKKKhXL8dVA8yMIExONvNf3SwBy58rB+K8G4eDw4k9rGTJqPEdP/EVsbByN2nfj017d6djGfo/qTA+j0ciEEVOZvmIier2O33/15vKFID4a0pNzJwPYs20/r1Ysy4QF43DKm4c6TV7no8E96dzgfXuHniaT0cSMkbP4btm36PQ6tq7axtULV3nv8+5c+CuQQ9sP8VLFlxg1byR5nPNQs3ENug/qTp/GH7F38z68Xvdi7vbZaJrGMb/jHNpx+Pk/1NqMJqLGzaLw/G9BpyNu3TbiL17F5X/deXA6kLu7DpGvWztyNawJiUaMt24T/uUke0f9bFkxJ5ORe3Onkmf0RNDpeLjTG+P1IHJ06UnixfMkHDlAwokjGCpVw3nGEjSjifuLf0a7HYdDxark7Plp8t+lBxtWYbx62d4ZZbis+gmh6u/Mf7YmpVQ2YAPgCQQArsBooAXQFvgzad55Z+BLzFX/BOAzTdMOKaXuaJqWO2lbo4E7mqZNTHp9R9O03EqpHkBLzPPTSwMrNE0b86y4/u20lhdNQFzw8ztlMk3yl7N3CBluZ8xZe4eQ4cIC/7B3CBlLb7B3BBnu9Qo97B1Chsunf7Efl/lPzMht7wjE8xR46b69Q7CK/Bv9XqjR8GGPN606RqsRus4u+b4wlXNN0x5iHog/aTfwRYp+q4BVaayfO8X3o5/WBkRqmtb3X4YrhBBCCCHsKEtVT1N4YQbnQgghhBBCpFdWndbynxqca5q2GFhs5zCEEEIIIYRI039qcC6EEEIIIbIGeZSiEEIIIYQQwqqkci6EEEIIITIdk70DsBKpnAshhBBCCPGCkMq5EEIIIYTIdDRkzrkQQgghhBDCiqRyLoQQQgghMh1TFv0UIqmcCyGEEEII8YKQyrkQQgghhMh0TDLnXAghhBBCCGFNUjkXQgghhBCZjjytRQghhBBCCGFVUjkXQgghhBCZjnxCqBBCCCGEEMKqpHL+HH/euGjvEDJUSSd3e4eQ4UxkvQed3k14aO8QMlz1ij3tHUKGctDp7R1Chjvw12J7h5Dh+lQdYu8QMlzjiAv2DiHDOeiy1nDEITrrnR8AXrTfPJlzLoQQQgghhLCqrHWpKoQQQggh/hNkzrkQQgghhBDCqqRyLoQQQgghMp2sWjmXwbkQQgghhMh05A2hQgghhBBCCKuSyrkQQgghhMh0TFmzcC6VcyGEEEIIIV4UUjkXQgghhBCZjknmnAshhBBCCCGsSSrnQgghhBAi09HsHYCVSOVcCCGEEEKIF4RUzoUQQgghRKaTVT+ESCrnQgghhBBCvCCkci6EEEIIITIdk5KntQghhBBCCCGsSCrnQgghhBAi05GntYi/pWmT+pz6azdnz+xl8OBPU7U7OjqybOkszp7Zy949v1OsWGEA8ufPy9atq7gRfZ6pU76xWMdgMDBr5nhOn/Ljr5O7aN++hU1ySUudBjXxPrAan8Nr6f2/91K1V61ZibU7fuFU6AGatm5o0Tb312kcDtzJz8sm2yrcdPGqV4lpvrP4yW827T/pmKq9de+2TNkxg4k+0/h6xVgKeLoCUPzVEny7/gcmb/+JiT7TeL11HVuHnqxJk3qcPOnL6dN+DB78Sap2R0dHli6dwenTfuzZs4GiRc2/dw0b1mH//k0cPbqV/fs3Ua/e66nWXb16PseObbN6Ds/yeoMarN+3ko0HV/FB326p2ivXrMiKbQs5GuxH49b1k5e7F3Zj+dYF/LpjMWv8ltHpvfY2jPrZatWvzpq9y1i3fwXv9+2aqr1SjYos3Tqfg9d8adiqXqr2XLlzsvn4WoZ8O8AW4f5rX303mTdavUP7bh/bO5R0K1/Pi+92Tmf87hm0/KRDqvamvdowbvtUxm6ZzJDlo3BJOjcALLj0G2O8JzLGeyL95g2zZdip1GtUm12Hf2fPsc182r9XqnZHRwMzF/zInmOb2bh9OYWLeADQvlMrtvitTv4Kij7Jq+VfJlfunBbL/QP3MOq7oTbN6Y2Gr7Pj0Hp8j2zk434fpJnT9Pnj8T2ykXVbf8GziDsABoMDE6bJ81KgAAAgAElEQVSPZsue39i8exU1aldJXufz4Z+x7+QWTgXtt1ke6VG3YS18Dq5l+5H19On3fqr2qrUqsX7nMs6GHaJZm0Z2iFBklExXOVdKFQc2aZpW3s6hPJVOp2PatHG0bNWF4OAwDuzfxKZN2zl/PjC5zwc93iE2NpZXy9Xlrbfa8u244XTr/ikPHjxkzJiJlHv1ZcqVe9liu8OG/Y/IqBuUf60eSin+z959x9d0/w8cf33uTYwgiOzELGqL2qP2qBEUxbeltJQa1VJ7V63qMFqUTkVbqvaOvWuPWgkSMm622CS5Ob8/bkRuBqG5uYnf++mRxyPnnPc59/12zj33cz/3cz9xcCiU1aUBpvomfDGSPm8NJiwknJXbl7B7236u+vonxYQEhzJmyBTeH5i6AfXz/GXkyZubbu92ysq0n0qn09Hn8/58/s4kokOjmLH+K47vOEqQX2BSjP95f0a1G0bsw1ha9niDnmN6M3vwlzx68Ihvh84hNMBAYWcHvtj0Naf3neL+7XtZXsOcOZ/Ttu07BAeHcuDAejZu3GF23fXu3Y2bN29RqVIj3nrLm2nTRtOz52Ciom7Spcv7GAzhVKhQlg0blvLKK7WT9uvQ4Q3u3bufpfWkpNPpGD3jUwZ0/YQwQzjLt/7I3u0HuOYbkBRjCA5j0sfTeHfg/8z2jQiLorf3h8TFxpHXLi+r9i5l77YDRIRFZnEV5nQ6HSOnD2Vw92GEGSJYsnkx+7YdwN/velJMaHAYn30ynR4fdk/zGB+O7MvJI6ezKuX/rGObFrzduT1jP//K2qlkiNLp6DnlA77qMYXo0Cgmrv+C0z7HCLkSlBRz44I/U7xHEvswliY9WtF1TE8WDjZ1PsQ+jGVSm+HWSj+JTqdj6qxxvNOpH4aQUDbs/BOfrbvxu3wtKaZbj07cirlNwxpt8e70BmMmD2VQnxGsXbWJtas2AfBq+TL8tHweF/69DEDrRm8l7b9p1wq2bNiZpTV99sVo3u0ygNCQMNb6LGfH1r1c8X1SU9d3OnI75g5Na3Wg3ZutGDXpY4b0HU33nqbXn9YNu1LEsTA/r/iOjs17oGkaO7ft47efVrDrn3VZVsuz6HQ6Js0cxXtvDSI0JIy/t//Gzq37zF53DUGhjP5oMn0G9rRipllLZmsRGVazphdXrwbg73+DuLg4Vv61Hm/vlmYx3t4tWbpsFQCrV2+iSZP6ANy//4BDh47x8NGjVMft1asbs2Z9B4CmaURF3bRwJWmr8lpFbvgHEXQ9hLi4eDav2U7TNxqaxYQEGvC9cIWEhNRPnSP7j3HvrnUbeimV9ipDaEAo4YFhxMfFc3DDfmq0qGUWc/7wOWIfxgLge+oyDm5FADD4hxAaYADgZng0tyJvYe9gn7UF8OS6CwgIJC4ujr/+2kC7di3MYtq1a8Hy5X8DsHr1Zho3Nl13Z86cx2AIB+DCBV9y585Nrly5AMiXz44hQ/oyc+a3WVhNapWqlSfQP4jgGyHEx8Wzbe1OGrd63SzGEBiK38WrJCSYf9gZHxdPXGwcALly26KyyZeIKlYrT2BAMME3DMTHxeOzbieNWpl/8mIICuXKxWtoCak/wC1XuSwOToX5Z++xrEr5P6vhVZmC9gWsnUaGlfIqTfj1UCICwzDGxXN0wwGqtaxpFnPp8L9J94arp3wp7FrEGqk+lVf1ygT43+DG9SDi4uLZsHoLLVs3MYtp2aYJq/5cD8DmdT7Ub1g71XE6dG7Nur83p1pfolQxijg5cPTwCcsUkIaqr1Xiun8ggdeDiYuLZ+OabbRo3dgspnnrxvz95wYAtqzfQb3XTff10q+W4uD+owBERd7kzq07VPaqAMDpE+es/sY9pSqvVeR6wJNaN63dTvPW5p+kBQcauHzhCgnay9pk/f8jpzbO9UqpH5RS55VS25VSeZVSe5RSNQCUUo5KqYDE33srpdYqpTYopfyVUoOVUsOUUqeUUkeUUg6ZnZy7uyuBQSFJy8HBBjzcXVPFBCXGGI1Gbt++Q5EihdM9ZsGCpsbe5EkjOHJ4M78vX4izs2Nmp54hzq5OhAaHJS2HGcJxcXN6yh7Zn4NrEaIMT27G0YYoijzlBbZZtxac2pP6Rah01TLY5LIh7HqoRfJ8GtM1ZUhaDg424OHx/Nfdm2+24cyZ88TGmhobkyZ9yty5P3D//gMLV/B0zm5OhIWEJy2HGcJxeo7rzsXdmRW7lrDlxBp+nb88W7z4Ork6pqgpIsM1KaX4ZNIg5n2+0FLpCaCwiwPRIcnvDdEUdkn/3tCwazPO7TmZtGybOxcT13/B+DUzqNayVrr7WZqrmzMhwU/uS4aQMFzcXNKNMRqN3Ll9l8IpPqH1fvMN1q3ekur4HTq3YcOarRbIPH2ubs4YQp68FplqMn/+uLg5Y0ijpovnfWnxRmP0ej2exdypVLUC7inul9mJi5uz2etuaEg4Lm7OVswoe0hQlv2xlpzaOC8DzNc0rSIQA6QeIGyuEvA2UAuYBtzXNK0acBhIPWD6P0qrV07TtBQxqfdLGZOcjY2eop7uHDp8jDp12/DPPyeZOXP8f871RaRdnxUSsbD0zsfrbzaiVOXSrF+0xmx9IefCfDR7KAuGz3vqubSUjFxTz7o2y5cvw9Spoxk8eAwAVapUoFSpEqxfvy1zk30RaReY4d3DQsLp1rQXHep2w7traxwc038znFUycq9IT5feb3Jw1xGzxr2wgOc4R3U7NqRElVfYsvjJcIjh9fozpf0oFg2Zw9sT38OpmEua+1paxl6Xnh7jVb0yDx48xPfilVRx7Tu9wfq/UzfaLSoDt4T0avpr+TpCDWGs27GcCdNGcPLoGeKNRgsl+t89b5tB5Gw5bsx5In9N0x4PsjwBlHhG/G5N0+4Ad5RSt4ANievPAVVSBiul+gH9APQ2hdDr8z9XcsHBBop6uicte3i4EWIISxETiqenO8HBoej1euztCxAdHZPuMaOibnLv3n3WrTP1TPy9eiO9e3d7rrwyS5ghHFePJy8wLm7OhIdGWCWXzBIdGkURtyefRDi4FSE6LDpVXOX6Vek0+C0mdR1HfGx80vq8+fMy5pcJ/PHVMvxO+WZJzimZrim3pGUPDzdCQlJed4Z0rzsPD1dWrFhM377D8Pe/AUDt2q/x2muVuXTpADY2Njg5FWHbtj9p1Srt8c+WFB4Sjov7k54iFzdnIkKfv/c7IiySq5f9ea1OVXZs3JOJGT6/cENEipqciMxgTVWqV8SrdhW69OqIXb682Nja8uDeA76bvshS6f6/dDM0Cgf35PcGB2LCU98bKtSvQrvBnZnZbYLZvSEm3DT8MCIwjEtHzlO8YkkiboSl2t/SDCFhZj3Dbu4uhIeGpxkTGhKGXq+ngH1+Ym7eStrevlPaQ1rKVyyLXq/n3JkLlisgDaEh4bi5P3ktMtUUkSImDDcPV0IN4alqmjr+66S4vzb/SsDVG1mT+AsIDTF/3XV1z/mvu5khIa13aC+BnNpznnxAthHTm4x4ntST5ynxCcmWE0jjDYqmaYs1TauhaVqN522YAxw/fobSpUtQokRRbG1t6fpWezZu9DGL2bjRh549ugDQqVNb9ux59rfCN23aQaNGdQFo0qQBFy/6PWMPyzh36gLFSxXFo5g7trY2tHmzJbu37bdKLpnlyhk/3Eq64VzUGRtbG+p7v85xn6NmMSUqlqTfjAF80Wcat6OevGDZ2NowYvEY9v69myObD2V16klM111Jihc3XXdvveXNpk3m192mTTt45x3TB02dOrVh715TvgUL2rN69S9MnDiLw4ePJ8X/8MMySpWqRblyDWjatAt+fv5WaZgDnD99iWKlPHEv5oaNrQ2tOjZjz/YDGdrX2c2J3HlMY+gLFCyAV83KBFyx/gvxhdOXKFbSE/eipppadGjGvu0ZmyFiwuDP8a75Fh1qd2PulAVsXrVNGuYW4H/mCs4l3HD0dEZva0Mt7wac8jluFlOsYkl6Te/PvL4zuRN1O2m9nX0+bHKZXmLyFy5AmerlCPELwhrOnPyXkqWKU7SYB7a2Nnh3ao3P1j1mMT5b9tCle3sA2nRowaH9T+6BSinadmjJhtWph6506NyG9WkMdbG0s6fOU6JUMTwTX4vavdmKHSlq2rl1L527ewPQun1zDu83fT8jT9485LUzNRUaNKqN0Wg0+yJpdnPu1AVKlCyaVGvbji3ZuXWftdMSgFLqDaXUZaXUFaVUulMyKaW6KKW0x0Ownyan9pynJQCoDhwFulgzEaPRyCefTGDjhmXo9Xp+XbKCixd9mTjxU06eOMvGTT788uuf/PLzHC6c3090dAw93x2UtP/ly4ewL1CAXLls8fZuRdt273Dpkh/jxk/n55/n8tWXk4mMjOKDfp9arb6po7/kxxXz0Ol1rP59A1cuX+OjUf349/RFdm/bTyWv8nz76yzsC9rTpOXrfDSyH94NTY26pesXU6p0cezy5WX36Q2MHzqNg7uPWKWWxxKMCfw0cTHjfpuMTq9j98qdBPkF0m3Y21w9e4XjO47Sc+x75LHLy6cLTFOFRYZE8kXfadRtV5/ytSpSoFABmnQxTRs5f/g8Ai74P+0hM53RaGTo0Ils2PAber2eJUtWcvGiHxMmDOPkybNs2rSDX39dwc8/z+bff/dy82YMPXsOBuDDD3vxyislGD36I0aP/ggAb++eREREZWkNT2M0Gvli7GwW/PENOr2edX9s5NplfwaM7MuF05fYu/0AFbzK8c3PM7AvVICGLerz4Yi+dGnUg5JlSjBs8mDTZ95K8dvCP7hyyfovxEajkVnj5jDv96/Q63Ws/3Mz13wD6D/ifS6eucy+7QepULUcs36ain2hAjRoUY/+w9+nW5PU06jlFCMmzeTYqbPExNymWcceDOzTk87eraydVroSjAksn/gjn/42AZ1ex/6VuwjxC6Tj0O4EnLvC6R3H6TrmXXLb5WHgAtM9OSo4knkfzMS9tCe9pvcnQdPQKcWmhWvMZnnJSkajkQkjp7N01ffo9XpWLF+D76WrDBsziHOnzuOzdQ8rlq1mzvcz2Hd8EzE3bzG475NpEWvXq44hJJQb11Pn365jK3p1Sz1lsKUZjUYmj/6CJX8tQKfT8dfv6/C7fI1PRg/g3OkL7Ny6lxXL1/LNgqnsOrqOWzG3GfKBqe1UxLEwS/5aQEJCAmGGCIYNeDJMdNSkj2nfuTV57fJw8OxWVi5bw9xZ1n3jazQamTLmS35a+S16nZ5Vf6znyuVrDBnVn39PX2TXtn1U9qrA/CVfJr3uDhnZj7avW+cT9qxi7YE9Sik9MB9oAQQBx5RS6zVNu5AirgAwBPgnQ8fNaWOWUk6lqJQaDuQH/gRWAneBXUAPTdNKKKV6AzU0TRucGB+QuByZcltacucpmrP+g56hlL3bs4NymEp5X76aNobnnKnxMqpcQU9rp5CpbHR6a6eQ6Q6d/dXaKWS6fjVGWDuFTLfztnWGzlmSje5l6isEG/Xy3R8AfCOOZ6txJL959LBoG+3d4GVPrVcpVReYrGlaq8TlMQCaps1IETcH2AEMB4ZrmnY85bGSy3HPBk3TAjB9wfPxcvLJcpOPHx+fuP1X4Ndk8SWS/W62TQghhBBCiAzyAAKTLQcBZnOQKqWqAUU1TduY2KH8TDmucS6EEEIIIYSlZ3RPPkFIosWapi1OHpLGbkm9+UopHTAb6P08jyuNcyGEEEIIIVJIbIgvfkpIEFA02bInEJJsuQCm0R57Eqf1dAXWK6XaP21oizTOhRBCCCFEjpMNvhR4DCijlCoJBAPdMf1dHQA0TbsFJM3FqpTaQwbGnOfUqRSFEEIIIYSwGk3T4oHBwDbgIrBS07TzSqkpSqn2L3pc6TkXQgghhBA5TkI2mDtG07TNwOYU6yamE9s4I8eUnnMhhBBCCCGyCek5F0IIIYQQOY6lZ2uxFuk5F0IIIYQQIpuQnnMhhBBCCJHjSM+5EEIIIYQQwqKk51wIIYQQQuQ4WjaYrcUSpOdcCCGEEEKIbEJ6zoUQQgghRI4jY86FEEIIIYQQFiU950IIIYQQIseRnnMhhBBCCCGERUnP+TOULuhu7RQylV9MsLVTyHRl8zhbO4VMp2matVPIdPn1eaydQqbLq7O1dgqZql+NEdZOIdMtPv6ltVPIdC28+lk7hUznqLezdgqZKhd6a6fw/8LL90ppIj3nQgjxAl62hrkQQojsQXrOhRBCCCFEjpPwks5zLo1zIYQQQgiR48gXQoUQQgghhBAWJT3nQgghhBAix5GecyGEEEIIIYRFSc+5EEIIIYTIcWQqRSGEEEIIIYRFSc+5EEIIIYTIcV7WqRSl51wIIYQQQohsQnrOhRBCCCFEjiOztQghhBBCCCEsSnrOhRBCCCFEjiOztQghhBBCCCEsSnrOhRBCCCFEjpPwkvadS8+5EEIIIYQQ2YT0nAshhBBCiBxHZmsRQgghhBBCWJQ0zrNAgyZ12HhwJVuOrKLvR++m2l69jhd/+SzhTPBBWrZrarZt0R9zOOy7g/nLvs6qdNPVsmVj/j23lwsXDjBi+KBU23PlysXyZQu4cOEAB/ZvoHhxTwAcHAqxfdtKoqMuM2fO1KT4vHnzsHbtEs6d3cPpUzuZNnVMltWSlmqNXmPB7u/5ft9iOg/skmp7+74d+W7nAuZu+5Ypf0zDycMpaduk3z5j+bk/Gf/LxKxMOZUWLRpx9uxuzp/fx/DhA1Ntz5UrF0uXzuf8+X3s27fO7Bxt2/YnkZEXmT17itk+Xbp4c+zYNk6e3MG0aWOzpI701Gpck+X7fuWPA7/xzqDuqbZXrV2Zn7Z+z+7r22nctqHZNmd3Z77+/QuW7vmZpbt/xtXTJavSfqoajavz054f+WX/z3Qb2DXV9sq1KzF/83ds8d/E620amG3rO7YPi3cs4sddixn42YCsSvmZKjXyYvrOeczc8x1tBryZanvLPt5M9ZnDlC3fMGL5JIokey79dHUln23+is82f8WQH0ZnZdovbPz0b2jYtjsde3xo7VQyrFbjmvy29xeWH1jC22k8l6rUrsziLQvZGbCNRm1fT1rvVa8qP277Puln+5XNNGhVLytTT5dXo9eYu2sB3+5dRMcBnVNtb9e3A7N3fMfXW+cx6ffPcUy87kpUKMm0NbOY7WPaVq9dg1T7WkuVRtX4atd3fLN3Ad4DOqXa3qZve2btmMfMrbMZ+/tnSTU5ejgxbeNXTN/8DbN85tLsnVZZnXqW0Cz8Yy2Z3jhXSm1WShV6jvgSSql/MzuPDD72XUs/hk6nY9zMEXz49ie0f707bd5syStlS5rFGILDGPfx52xavT3V/j8vWMaYwZMtneYz6XQ65s6dinf7nlSt2oRu3TpQvlwZs5j33uvOzZhbVKjQgHnzfmB6YkPu4cNHTP7sS0aN/jzVcWfPXkTlKo2pWesN6tatQatWTbKknpR0Oh39pw7gs16TGNxsIK+3b0TRMkXNYvzPX2VY26F83OojDm06QO+x7yVtW7NoNXOGfpPVaZt5fI46dOiFl1czunZtT7kU56h3727ExNyiYsWGfPvtj0xNfEP08OEjPvvsa0aPnmYW7+BQiBkzxtK69f947bXmuLg40qRJ/SyrKTmdTsewaUMY3mMMPZu8T/OOTSlRprhZTFhwONOHzmLH2p2p9h8/dxR/LFxJz8bv06/tQG5GxmRV6unS6XQMnjqIce+O54Om/WjcoTHFyhQziwkPjuCrYV+za+1us/UVqpenYo0KfNhyAP2af0jZqmWpUqdKVqafJqXT0XPKB8zuPY1xLT6hdvsGuJf2NIu5ccGfKd4jmdh6GMe3HKHrmJ5J22IfxjKpzXAmtRnOvA9mZnX6L6RjmxZ8/83UZwdmEzqdjo+nfsSonmPp1aQPTTs0oXiq6y6cmcNmsWPtLrP1pw+doW+rD+nb6kOGdhvBw4cPObb3RFamnyadTkffz/szrddnDG0+iAbtG+KZ6h5+jVHthvHpG0M4vPkQPcf0BuDRg0d8O3Q2Q1sMZuq7k3lvUl/s7PNZoQpzSqfjvc/7MavX54xoPoR67RvgUcb8uRRw/hrj2w1n9BtDObr5EP8bY+oAvBl+k0mdRjO2zTAmdBhF+wGdKORc2BpliBeQ6Y1zTdPaaJpm/Ve9bKLyaxUI9A8i6HoIcXHxbF7rQ5M3zHv0QgIN+F64gpaQevTUP/uPc+/u/axKN101a3px9WoA/v43iIuLY+XKdXh7tzSL8fZuydKlfwHw9+pNNGli6n24f/8Bhw4d4+HDR2bxDx48ZO/eQwDExcVx6vS/eHi4ZUE1qZXxKktogIGwG2HEx8Wzf8M+arWsYxZz7vA5YhNruHzqMkXcHJO2nT14hgd3H2RpzimlPEd//bUhzXO0bNkqAFav3pzU0H58jh49emgWX7JkMfz8/ImMjAZg164DdOzYOguqSa18tXIEBwRjuGEgPi6enet2p+qxCw0K4+rFa2gJ5n0eJcoUR2+j5/h+UyPiwf2HPEpxPVrDq16vEhJgIPRGKPFx8exdv5d6LeuaxYQFheF/yR9NM69J0yBX7lzY5LLBNpctNrZ6bkbezMr001TKqzTh10OJCAzDGBfP0Q0HqNayplnMpcP/EvswFoCrp3wp7FrEGqlmmhpelSloX8DaaWRYOa9XCQ4ISXou7Vq3h/otzd90hwaFce2if5qvS481atuQf3YfyxbPpdJeZQgNMBAeaLqHH9ywn5otapvFnD98Lum680t2Dzf4hxAaYADgZng0tyJvYe9gn7UFpKG0VxnCEmsyxsVzeMMBqreoZRZzIdlzye+ULw5upueSMS6e+Nh4AGxz2aJ0KmuTzyIJFv6xludunCulRiqlhiT+PlsptSvx92ZKqWVKqQCllGNij/hFpdQPSqnzSqntSqm8ibHVlVJnlFKHgUHJjl1RKXVUKXVaKXVWKVUm8TiXlFJLEtetUkrZJTvOXqXUCaXUNqWUW+L6V5RSWxPX71dKlUtcX1IpdVgpdUwplbob1wJcXJ0xhIQlLYeFhOPi6vSUPbInD3c3ggINScvBwaG4p2hIe7i7EhRkijEajdy6fZsiRTL2Tr1gQXvatm3O7t0HMi/p51DEtQiRIRFJy1GGSIq4pN9gaNGtJSd2W7+3KDl3d1eCgkKSloODDbi7u6QbYzQauX37zlPP0dWr1ylb9hWKF/dEr9fj7d0ST093yxTwDE6ujoQnO0cRhggcXR2fsscTRUt5cvf2Pab+MJmftn3PwPH90OmsP6rP0bUIEWY1RVIkgw3ViycvcvrwGf48/jt/nvid43tPEHgl0FKpZlhhFweiQyKTlqMN0RR+ynOpYddmnNtzMmnZNncuJq7/gvFrZlCtZa109xMvzsnNkQhDeNJyRGgETm7P/wapafvG7ErRs24tDq5FiDQ8ue6iDJE4POW51LRbC07tSX0PL121DDa5bAi7HmqRPJ9HYVcHogzJn0tRT62pSbfmnEn2XHJwK8LMrbP59sgPbPh+DTHh1n/zLjLmRV6d9gGPB6DVAPIrpWyBBsD+FLFlgPmaplUEYoDHg8B+AYZomlY3RfyHwFxN07wSjx2UuP5VYLGmaVWA28DAxMf8FuiiaVp14Gfg8Wfyi4GPEtcPBxYkrp8LLNQ0rSaQ7jNPKdVPKXVcKXX85oPw9MIyJo03q1oOnJdTpVVHip48lUZQypi06PV6li6dz/z5P+Pvf+OFc/xPMlDfY43ebEzpKqVZs+hvCyf1fDLy//+85ygm5hZDhoxj6dL57Ny5iuvXg4iPj//vyb6ItDp+MnB9Aeht9FSpVYn5ny+iX5uBuBVzo3XXbDAG8wWfMwDuJdwoVroYb9fqwf9qvoNXPS8q166U2Rk+v+eoqW7HhpSo8gpbFq9LWje8Xn+mtB/FoiFzeHviezgVyx7fDXi5pHWOnu8IDs4OlCpXkqN7j2dSTv+NSrOmtIt6/c3GvFK5NOsWrTZbX8i5MB/NHsr84fMy/Dy0pOepqf6bjShZ+RU2LlqbtC7aEMXoN4YytOEAGnZugr1jQYvlai0JyrI/1vIijfMTQHWlVAHgEXAYU0P6dVI3zv01TTudbL8SSqmCQCFN0/Ymrl+aLP4wMFYpNQoormna43ECgZqmHUz8fRmmNwKvApUAH6XUaWA84KmUyg/UA/5KXL8IeNzFWx/4I43HNaNp2mJN02pomlajcF7nDPyXpC/MEI5bst5LF3dnwkMjn7JH9hQUbMCz6JOecg8PVwwhoaljPE0xer2egvb2REc/e4TTwgVfcOWKP99++1PmJv0cogxROLo/+USjiJsj0eHRqeKqNqjKW4O7Ma3P50kfGWYXwcEGs15tDw83DIbwdGP0ej329gWeeY42b95Bw4YdaNz4Tfz8rnHlSkCm554REYZInJOdIyc3JyLDojK0b7ghAr9/r2C4YcBoTODAtoOUrVzm2TtaWKQhEiezmhyJDkt93aWlfqv6XDp1iYf3H/Lw/kOO7T5GuWrlLJVqht0MjcLB/cknGg5uDsSk8VyqUL8K7QZ3Zm7fGWbPpce9exGBYVw6cp7iFUum2lf8NxGGCJzcnry2Obk6ERmasefSY028G7F/60GM8cbMTu+FRIVG4phsqGERN0dupvFcqly/Kp0Hv8XMvlPNrru8+fMy9peJ/PnVcvxOXc6SnJ8lOjTKbPikg1uRNGuqVL8KHQd34esUz6XHYsJvEuR7g3K1Klg0X2tIQLPoj7U8d+Nc07Q4IAB4DziEqUHeBHgFuJgiPPlANCOmedUV6XwJVtO034H2wANgm1Lq8dQlKeO1xOOc1zTNK/GnsqZpLRNrikm23kvTtPIp9s0y/566SLFSRfEo5oatrQ1tOrZg97Z9WZlCpjh+/AylS5ekRImi2Nra0rVrBzZu9DGL2bjRh5493wKgc6e27NlzMK1Dmfls8ggKFrTn008nWf8KjcsAACAASURBVCTvjPI744tbSXeci7pgY2vD694NOerzj1lMyYqlGDBjMNP6fM6tqFtWyjR9Kc/RW295p3mOevQwzUTTqVMb9uw59MzjOjmZPkYtVKgg/fr15Jdf/njGHpZx6fQlPEt64FbUFRtbG5p1aMKB7c/O37TvZQoUKkAhB1PP0Wv1qxHge92S6WbI5TOX8SjhjmviddeofSMO+xzJ0L7hIeFUrl0ZnV5n+mSgTuVsMazF/8wVnEu44ejpjN7WhlreDTjlY967WqxiSXpN78+8vjO5E3U7ab2dfT5scpn+/Eb+wgUoU70cIX5BiMx1+cxlPEt64Jr4XGraoTGHfDL2XHqsWYem7FyXPYa0AFw542d2D6/v/TrH0riH958xkJl9pnI72T3cxtaGkYvHsvfv3Rze/OzXraxy9YwfriXdcCpqei7V9W7ACZ9jZjHFK5akz4wBfN1nullNDq5FsM2dC4B89vkoW6M8hqvBWZq/eHEv+keI9mEaLvI+cA74BjihaZqW1sfmyWmaFqOUuqWUaqBp2gHgncfblFKlgGuaps1L/L0KcA0oppSqq2naYeB/wAHgMuD0eH3iMJeymqadV0r5K6Xe0jTtL2VKqIqmaWeAg0B3TL3v75AFjEYj08Z8xeI/56HT61jzxwauXvZn8Mh+nD9zkd3b9lPJqzxzf5mFfaECNG75OoNGfECHRv8D4Ld1iyhZujh2+fKy89QGJg6dysE9/zzjUS1TxyefTGDTxuXo9DqW/LqCCxd9mTRxOCdOnmHjRh9++eVPfv1lLhcuHOBmdAw9ej6Zys/38mHs7QuQK5ct7b1b0bbt29y+c5cxYz7m0iU/jv6zFYAFC3+1SuMvwZjA4gnfM3npFHR6HTtX+BDoe4O3h73DlXN+HPU5ynvj3ievXR5GLjRN7xYZEsG0PqavLkxf9QWer3iSJ18efvrnV74bMY9T+04+7SEz3eNztGHDUvR6PUuWrODiRV8mThzGiRPn2LTJh19/XcHPP8/h/Pl9REfH8O67g5P2v3z5IAUKmM6Rt3cr2rXrwaVLfnz99WQqVzb1uEyfPocrV/yztK4n9SUwe/y3fP37F+h0Ojat2EKA73X6DO/NpTOXOehzmHJVX2XaT59RoGB+6rWoy/uf9uLdpn1ISEhg/pRFzFnxFSjwPefHht83WaWO5BKMCXw3YQHTl01Dp9exbcV2rvte591Pe+J71o8jPkcoW7Usk36YQIGCBajTvDY9h/WkX/P+7N90AK96Xiz2+R5N0zi+9wRHdmT9vSGtmpZP/JFPf5uATq9j/8pdhPgF0nFodwLOXeH0juN0HfMuue3yMHDBpwBEBUcy74OZuJf2pNf0/iRoGjql2LRwDSFXsn/jfMSkmRw7dZaYmNs069iDgX160tk7GwybSofRmMDcCd/y5fKZ6HQ6tqzYSoDvdd4b3ovLZ3w55HOYV6u+ytQfJ5O/YH7qtqhL72G9eK9ZXwBcPV1wcnfizOGzVq7kiQRjAj9OXMT43yaj0+vYtXIHQX6BdBv2NlfPXuH4jqP0HNubPHZ5+XTBKMB0D/+i7zTqtmtA+VoVyV+oAI27mPoE5w+fS8AF69zrHkswJvDrxB8Y/dskdHode1buJNgvkC7D/se1s1c4ueMY74ztRR67PAxZMAKAqJAIvu47A/fSnvQY3xtN01BKsWnxWgIvW2nYqAVZf/CRZagXGVellGoGbMU0POWeUsoX+F7TtG+UUgEkjkUHNmqaVilxn+FAfk3TJiulHo8Rvw9swzRuvJJSagzQA4jDNCb8bcAe2IzpDUE9wA/oqWnafaWUFzAPKIjpjcYcTdN+UEqVBBZiGs5iC/ypadqUxPW/J8b+DYzXNC3/02qt6FL7pTr3fjEv3zvn1i5e1k4h020Lzz4vepmlZhHrDyPJTHl1ttZOIdN56K0/fVxmW3z8S2unkOlaePWzdgqZzlFvZ+0UMlUu9NZOwSJ+v74mW037Mq7E2xZto00L+N0q9b5Qz7mmaTsxNXofL5dN9nuJxF8jMY0Jf7z+q2S/nwCqJjvk5MT1M4AZyR9LKWUPJGialuqvOySOZ2+Yxnp/4I101if/EmrOmERXCCGEEEKYseZ0h5Zk/bnEhBBCCCGEEMCLjznPMpqmBZCsB14IIYQQQghrzqhiSdJzLoQQQgghRDaR7XvOhRBCCCGESOnl7DeXnnMhhBBCCCGyDek5F0IIIYQQOY7M1iKEEEIIIYSwKOk5F0IIIYQQOY7M1iKEEEIIIYSwKOk5F0IIIYQQOc7L2W8uPedCCCGEEEJkG9JzLoQQQgghchyZrUUIIYQQQghhUdJzLoQQQgghchztJR11Lj3nQgghhBBCZBPScy6EEEIIIXKcl3XMuTTOn6FJ3hLWTiFT1crrae0UMt3JhwZrp5DpjrpWtXYKmS53nnhrp5CplHr5Pk5tHuZr7RQyXQuvftZOIdP5nF5s7RQy3bKqE62dQqbq3Cbc2imIHEwa50IIIYQQIsd5Wf9CqDTOhRBCCCFEjvNyNs3lC6FCCCGEEEJkG9JzLoQQQgghcpyXdViL9JwLIYQQQgiRTUjPuRBCCCGEyHFe1qkUpedcCCGEEEKIbEJ6zoUQQgghRI6jyZhzIYQQQgghhCVJz7kQQgghhMhxZMy5EEIIIYQQwqKk51wIIYQQQuQ4MuZcCCGEEEIIYVHScy6EEEIIIXIcGXMuhBBCCCGEsCjpORdCCCGEEDlOgiZjzoUQQgghhBAWJD3nWaB8o6p0mdgbnV7HoRW78Fm4zmx70z5tqdu9KQnxRu5G32bZyO+5GRwJQIfR71CpaTWUTsel/WdZ9dmvVqggtUqNvHh74vvo9Dr2rdjJ5oVrzLa37ONNw+7NSIhP4E70LX4euYCo4AgAfrq6kqDLNwCICo5k3gczszz/tNRrUptRn3+CTq9nzfIN/PzdUrPtr9XxYuSUjylT4RVGfTiJHRt3A/BqxTKM+2IE+QvYYTQm8OPcJWxbt9MaJZjJ3+g1PCZ+AHod0St8iFi4ymx74S7NcBvzHnFhUQBELdlE9Irt5KlQEo+pA9Hnt0MzGgmfv5JbGw9Yo4RU7BpUx2Xch6DTcWvVVqJ/+Mtsu/2bzXEa0Zf4MNPzJ2b5Bm6t2pa0XZfPjhKbF3F3xyHCP1+Ypbmnx65BdZzHDkiq6eaPK82223dsgeOIPsQnnqeY3zdwe9XWpO26fHaU2LTYVNPUBVma+2ONmtVn8vRR6PV6/ly6mgVzfzLbniuXLbMXTqdy1QrcvBnDoPdHEBQYQscuben/Ue+kuPIVy9KmcVeuBwSyatOSpPVu7i6s+Wsjn42dlVUlmanVuCaDPxuIXq9j0x9b+H3+n2bbq9SuzODJA3mlfCmmDJrK3k37AfCqV5XBkwYkxRV7pRhTBk3lwLZDWZr/ixg//Rv2HTyKQ+FCrF32vbXTeW4ejatQe0pPlE6H7x97ODd/Q5pxxdvWpOnij1nfegJRZ/2zOMtn01esQZ7uA1A6HbH7txK7dUWqGJsaDcnt3RPQSAi8xoMfZ6J/tSp5un2YFKNzLcqDxdOJP539r73n8XL2m/8/bpwrpX4FNmqatupZsf/pcXSKrlPe57se04gJjWLE+hmc8zlO6JXgpJjACwHs9x5D3MNYGvRoQccx7/DL4LmUfK0spWq8yvQ3RgAwbNUUytSpgN+RC5ZM+ZmUTkfPKR/wVY8pRIdGMXH9F5z2OUbIlaCkmBsX/JniPZLYh7E06dGKrmN6snDwNwDEPoxlUpvh1ko/TTqdjrEzhtO/68eEGcL5fetP7Nm+n2u+AUkxocGhTPh4Kr0Gvm2278MHDxn/0RRu+Afh5OLIH9t/5tDuf7hz+24WV5GMTofHlA/x7zGBuNAoSq//hts+//DoSqBZWMzG/YRMWmS2LuHBIwKHfUNsgAEbZwfKbJzNnX2nSLh9LysrSE2nw2XiIILeH0tcWCTF/5rL3V3/EHv1hlnYnS170214O37ckwfHzmVFthmj0+E8YRDBfRJrWjmPe7uPpKrp7pZ96Ta8iwx5l/tWrEmn0zF11jje6dQPQ0goG3b+ic/W3fhdvpYU061HJ27F3KZhjbZ4d3qDMZOHMqjPCNau2sTaVZsAeLV8GX5aPo8L/14GoHWjt5L237RrBVs2WOcNr06n4+OpHzH87VFEGCL4ftN8Dm4/xHW/J+coPDicmcNm0a1/V7N9Tx86Q99WpgZSgUIFWH5gCcf2nsjS/F9UxzYteLtze8Z+/pW1U3luSqeoM60X2/43k/uGaLw3T+HG9hPc8gsxi7PJl4cK77ci/OQVK2X6DEpH3rcHc2/2aLSbkeQb9y3xZw6TYHhy7emc3cndujv3vhgK9++iChQCwHj5DPemJL4xtCtAgem/EH8hZ1x7Qoa1WFwJr9JEXg8jKjAcY5yRkxsOUaVlTbMYv8PniXsYC0DAKT8KuRZJ3KJhm9sWG1sbbHLZorfRczviVhZXkFopr9KEXw8lIjAMY1w8RzccoFqKmi4d/pfYxJqunvKlcFJN2VOlahUI9A8i+EYI8XHxbF27g8atXjeLCQkMxe/iVRISzL8ffv1aIDf8TW9MIsIiiY68SeEihbIs97TYeZUh9rqB2MAwtLh4Yjbsw75l7QztG+sfQmyAAYD48Gjio25h42BvyXQzJE+VssTdCCEuKBTi4rmzeS/5m9XJ8P65K5ZGX6Qw9w6etGCWzydPlVeJu2FIqun25r3ka1o3w/vnrlAavWMh7luxJq/qlQnwv8GN60HExcWzYfUWWrZuYhbTsk0TVv25HoDN63yo3zD1tdihc2vW/b051foSpYpRxMmBo4et07Ao5/UqwQEhGG4YiI+LZ9e6PdRvWd8sJjQojGsX/dES0p87olHbhvyz+xiPHj6ydMqZooZXZQraF7B2Gi/Esdor3AkI4+6NCBLijFxbd4RiraqninttZBfOLdyI8WGcFbJ8Nn3JV0mICEGLDAVjPHHH9mLjVc8sxvb1NsTuXg/3TZ1B2p2YVMexrf468f8eh9icce09jwQ0i/5YS7ZpnCul3lVKnVVKnVFKLVVKeSul/lFKnVJK7VBKuSTGNVJKnU78OaWUKqCUaqyU2pjsWN8ppXon/j5RKXVMKfWvUmqxUkplZV0FXRy4GRKVtHzTEEVBl8Lpxtft2oQLe04D4H/SD7/D55l2bBHTjy7i4r4zhF0NTnffrFLYxYHokMik5WhDNIVd0m98N+zajHN7njQebHPnYuL6Lxi/ZgbVWtayaK4Z5ezmRGhIWNJyuCECFzen5z5OpWrlsbW1JTDAuufJ1qUIccnOUZwhCts0zlHB1vUos2UexRaMxtbNMdX2vFXLoGxtiL0eatF8M8LGxZE4Q0TScnxoJDZp1FSgRQNKrFuA+9xx2Lgm1qQUzqM+IOLLH7Mq3QyxcS5CfGiymsIi0zxP+Vs2oPjahbjNMa/JaVQ/Iq1ck6ubMyHBT64PQ0gYLm4u6cYYjUbu3L5LYQfzN7Deb77ButVbUh2/Q+c2bFizNdX6rOLk5kiEITxpOSI0Aie35+9saNq+MbvW7srM1EQ67FwLcy8kOmn5viGafK7mr7sOFYuTz82BoB2nszq9DFOFHEmIfnJ/0G5GoCtkfu3pXDzRuXhiN2o2dmPmoq9YI9VxbGs1Ju7obovnKzJPtmicK6UqAuOAppqmVQU+Bg4AdTRNqwb8CYxMDB8ODNI0zQt4HXjwjMN/p2laTU3TKgF5gXaWqCE9ab4XSOfNWM2ODShW5RV2Ljb1MDkWd8GltAfj6wxgXJ0PKVuvEq/UKm/BbDMojZq0dL4xXbdjQ0pUeYUti5+Msx9erz9T2o9i0ZA5vD3xPZyKuaS5b1ZK8zQ957fAHZ2LMO3biUz8ZNpz75vp0i7IbPH2jqNcatAHv9ZDuHvwNEW//sRsu41TYYp9M4ygEXNT7ZttpEjr7u5/uNasNwEdBnLv0ClcZ34KQKG323Fv7zHiQyNTH8OaMvBcurvnCP7NenG94wDuHz6F6wzTkLBC/2vHvX1HrV5TWve4lDU8K8aremUePHiI78XUwwvad3qD9X+nbrRnnbRyf74jODg7UKpcSY7uPZ5JOYmnSft6Mwug1uQeHJvye9Yl9SLS7EpMcfHpdehcPLj/1XAe/DCDvL2GQt58Tw5R0AGdRwniz7+c155m4X/Wkl3GnDcFVmmaFgmgaVq0UqoysEIp5QbkAh5/U+Mg8I1SajmwWtO0oGd0hjdRSo0E7AAH4DyQ9jdDEiml+gH9ABo7VKdigVdeuLCY0CgKuz95p1vYrQi3wm+minu1fmVaDe7EnG6TiY+NB6Bqq1oEnPIj9r7po6jze05TsloZrh69+ML5ZIaboVE4uD/pZXVwcyAmPDpVXIX6VWg3uDMzu01IqgkgJrH+iMAwLh05T/GKJYm4EZZq/6wUFhKBq/uTNwnObk6EP0ejJ19+O75b9hXffbGYcyfPWyLF5xIXGoltsnNk61aEuBTnyBhzJ+n36D+24zaqd9KyLn9eSv4yidCvl3H/1GWL55sR8WGR2Cb7NMPG1ZH48CizmIRkNd36aytOw98HIK9XefJWr0iht9uh7PKgbG1JuPeQyG9+yZrk0xEfFomNa7KaXByJT3GeUtbk+GkfAPJ4lSdv9UoU+p83Ors8YGtDwv0HWV6TISQMdw/XpGU3dxfCQ8PTjAkNCUOv11PAPj8xN58M0WvfKe0hLeUrlkWv13PujPW+ZxNhiMDJzTlp2cnVicjQqKfskVoT70bs33oQY7wxs9MTabhniCafu0PSsp2bA/fDnrzu2ubPQ+FynryxahwAeZ0K0vyXYex475ts9aVQ7WYkOocn9wdV2ImEmOhUMcZrF8FoRIsMJSE0CJ2LBwkBvgDY1mhI/KlDYHw5rz35I0SWpUjdn/wtpl7vykB/IA+Apmkzgb6YesGPKKXKAfGY15IHQCmVB1gAdEk8zg+Ptz2NpmmLNU2roWlajf/SMAe4fuYqTiVcKeLphN5Wz2ve9TjrY/4O1rNiCbpP78uivrO4G3U7af3NkEhK166ATq9DZ6OnTO3yhCb70qW1+J+5gnMJNxw9ndHb2lDLuwGnUtRUrGJJek3vz7y+M7mTrCY7+3zY5DK9J8xfuABlqpcjxM/6NZ0/fZFipTzxKOaGja0Nb3Rszt7tGZuhxMbWhtm/zGTDX1vw2ZA9Pjq8f8aPXCXcsfV0QdnaUMi7Ibd9jprF2Dg9+ZjXvkUtHl41fVlU2dpQfNE4bq7exa3NB7M076d5eM4X2+Lu2Hq4gK0NBdo04u6uI2Yx+mQ15W9ah9jEmgwjZnGtaS+uNetNxKwfub1uh9Ub5gAPz13Gtrg7Nok12bdpxL3dKWt60sjI37QOsddMXwYLHTkL/2bv4t+8FxGzfuTOup1WqenMyX8pWao4RYt5YGtrg3en1vhs3WMW47NlD126twegTYcWHNr/5FpUStG2Q0s2rE49dKVD5zasT2OoS1a6fOYyniU9cC3qio2tDU07NOaQz/PNeNGsQ1N2rpMhLVkl8vQ17Eu6kr+oEzpbPaU61CFw+5OhlXF3HvBH5QGsqjOUVXWGEnHyarZrmAMYAy6jc/ZAObqC3gbbmo2IP3PYLCbu1CH0r3oBoPLbo3PxRIswJG23qdVEhrTkQNml53wnsEYpNVvTtCillANQEHg8cLfX40Cl1Cuapp0Dziml6gLlgBNABaVUbkyN72aYhsU8bohHKqXyA10Ai87OklKCMYGVE39m0G9jUXodR1buIdQviLZD3+LGuWuc23GCjmN6kNsuD30WDAXgZnAkiz74klObj1C2XiXGbvsKTdO4uPc0/+60/pfZEowJLJ/4I5/+NgGdXsf+lbsI8Quk49DuBJy7wukdx+k65l1y2+Vh4ALTsILHUya6l/ak1/T+JGgaOqXYtHCN2Swv1mI0Gpkx9hsW/jEbnV7P2j82cvWyPwNH9uX86Uvs3X6Ail7lmf3zDOwLFaBRiwYMHNGHTo160Kp9M16r40XBwva079YGgIkfT+PyeT8rFpRAyMTvKfXbZ6DXcXPlDh753cBl6Ds8OOfH7R1HcXzPG/vmtdGMRowxdwgaPheAgm0bkL9WRWwKF6Bwl2YABA6fw8MLVn7hMiYQ/vlCPH+aCjo9t/7eTuyVGxT5qCcP//Xl3u5/KNyzA/mb1EEzGkm4dYfQMV9bN+dnMSYQMXUBnj9OA52O26u3E3vlemJNftzbfYTCPTqQr2kdiDdizIY1GY1GJoycztJV36PX61mxfA2+l64ybMwgzp06j8/WPaxYtpo5389g3/FNxNy8xeC+I5P2r12vOoaQUG5cT30faNexFb26DczKclIxGhOYO+Fbvlw+E51Ox5YVWwnwvc57w3tx+Ywvh3wO82rVV5n642TyF8xP3RZ16T2sF+816wuAq6cLTu5OnDl81qp1PK8Rk2Zy7NRZYmJu06xjDwb26Uln71bWTitDNGMCR8YvoeXvI1E6HX4r9hLjG0y14Z2JPONPoI/1X0czJCGBh79/h90n01FKR+zBbSSEXCd3+3cxXvcl/swRjOePY1OxOvk++8EUv+oHtHumT9tUERd0hZ0w+uasa+95WPNLm5akrD42NpFSqhcwAjACp4A1wGxMDfQjQE1N0xorpb4FmiTGXQB6a5r2SCk1C+gA+AGxwHpN035VSk0FugMBQCBwXdO0yRmdSnFwiW7Z4z8ok9wj/tlBOczJh4ZnB+UwS/Nk79ltXkTuPC/XtafUS3VrAKB5mPW/cJ7ZStlZ/zstmc3n9GJrp5DpllWdaO0UMlXnNuHPDsqB7H/YnqWTajzLW8U7WPRG/Nf1dVapN7v0nKNp2hJgSYrV69KI+yid/Ufy5EujydePB8ansb73CyUqhBBCCCGszppf2rSk7DLmXAghhBBCiP/3sk3PuRBCCCGEEBkls7UIIYQQQgghLEp6zoUQQgghRI6TXSY1yWzScy6EEEIIIUQ2IY1zIYQQQgiR4ySgWfQnI5RSbyilLiulriilRqexfZhS6oJS6qxSaqdSqvizjimNcyGEEEIIIZ6TUkoPzAdaAxWA/ymlKqQIOwXU0DStCqY/hDnrWceVxrkQQgghhMhxEiz8kwG1gCuapl3TNC0W+BPTH8RMomnabk3T7icuHgE8n3VQaZwLIYQQQgjx/Dww/fX5x4IS16WnD7DlWQeV2VqEEEIIIUSOY+m/EKqU6gf0S7ZqsaZpi5OHpJlW2sfqAdQAGj3rcaVxLoQQQgghRAqJDfHFTwkJAoomW/YEQlIGKaWaA+OARpqmPXrW40rjXAghhBBC5DgZnVHFgo4BZZRSJYFgoDvwdvIApVQ1YBHwhqZp4Rk5qIw5F0IIIYQQ4jlpmhYPDAa2AReBlZqmnVdKTVFKtU8M+xLID/yllDqtlFr/rONKz7kQQgghhMhxssNfCNU0bTOwOcW6icl+b/68x5SecyGEEEIIIbIJ6TkXQgghhBA5TgbnIs9xpHH+DNNej7R2Cpnqvv/Ldyl/GVTM2ilkuuVpzs6Us71PjLVTyFSaplDK+h+pZiYb3cv3kuCot7N2CpluWdWJzw7KYXqcmWLtFDJVQmTgs4PEf2bpqRStRYa1CCHEC3jZGuZCCCGyh5evm0QIIYQQQrz0ssFUihYhPedCCCGEEEJkE9JzLoQQQgghcpzsMJWiJUjPuRBCCCGEENmE9JwLIYQQQogcR8acCyGEEEIIISxKes6FEEIIIUSOI/OcCyGEEEIIISxKes6FEEIIIUSOkyCztQghhBBCCCEsSXrOhRBCCCFEjvNy9ptLz7kQQgghhBDZhvScCyGEEEKIHEfmORdCCCGEEEJYlPScCyGEEEKIHEd6zoUQQgghhBAWJT3nQgghhBAix9Fe0nnOpXGeBWwq1yRPz0Gg0xG3ZzOPNv6ZKsa2ViNyd+oFmobxxlUeLJwOgCriTN4+n6JzcALg3ldj0CLDsjT/tOSuXRP7jweDTs/9jZu4t+wPs+15W7eiwMAPSYiMBODe32t4sHEzAAUG9CN33ToA3P11KQ937c7a5NNRrlFVOk7shU6v48iKXexauN5se6M+bajdvSkJ8UbuRt9hxcjvuRlsqq/d6Lcp36QaAD7frub0xsNZnv+zlG1UlfYT30XpdRxbsZs9Keqr/U5z6vZsgZaQwKN7D1k95kfCrwRbKdu02TWojsu4D0Gn49aqrUT/8JfZdvs3m+M0oi/xYabzErN8A7dWbUvarstnR4nNi7i74xDhny/M0tzTY9egOs5jByTVdPPHlWbb7Tu2wHFEH+LDogCI+X0Dt1dtTdquy2dHiU2LTTVNXZCluT/WsGk9Jk4fgU6nY+WytXw/7xez7bly2fLVgs+pVKU8MTdv8VHfUQQHGrC1tWHa1+Op7FWBhASNKeNm8c/BEwB8OnYQb3ZrR8GC9lQuUd8aZSXxavQa703qi06vZ+ef21m78G+z7e36dqBZ9xYkxCdwO/oW80fMIzI4ghIVSvLBtAHY5bcjwZjA39+t5NDGA1aqIn0ejatQe0pPlE6H7x97ODd/Q5pxxdvWpOnij1nfegJRZ/2zOMv/Zvz0b9h38CgOhQuxdtn31k4nww6c/JcvflhBQkICnVo0oE+X1mbbQ8KjmPjtEm7eukPBAvmYPrQPro6FAfB6sz9linsA4OrowLfjB2d5/uLFWLVxrpRqD1TQNG1mOtu9AHdN0zZb6PEnA3c1TfvKEsc3PYiOPL2GcO+LkWjREeSfsoC4k4dJCLmeFKJz8SC39/+4O2UI3L+Lsi+UtM2u/ygerf+d+H9PQO48kB3eJep02A/7mOihIzCGR+D44/c8OnCI+IDrZmEPd+3m9ux5Zuty162DbdkyRL7XF2WbC4fv5vDoyD9o9+9nZQWpKJ2i05T3+b7HNG6FRjF0/XTO+5wgLFnjNPhCALO9+L6IdgAAIABJREFUxxL3MJZ6PVrQbsw7LB08l/JNquFRsQRftxmFTS5bBq2YyMU9p3l094EVKzKndIqOU97jxx7TuRUaxeD107jgc8Ks8X163UH+Wb4DgPLNq9NuQk9+7pXmU9M6dDpcJg4i6P2xxIVFUvyvudzd9Q+xV2+Yhd3Zsjfdhrfjxz15cOxcVmSbMTodzhMGEdwnsaaV87i3+0iqmu5u2Zduw7vIkHe5b8WadDodn30xmne7DCA0JIy1PsvZsXUvV3yvJcV0facjt2Pu0LRWB9q92YpRkz5mSN/RdO/ZCYDWDbtSxLEwP6/4jo7Ne6BpGju37eO3n1aw65911ioNMNXX9/P+THlnItGhUcxc/zXHdxwlyC8wKcb//DVGtRtG7MNYWv5fe/cdHlW1NXD4t2YylEAgpJCEroB0AUVERGmKyBV7w3JFsV8bKoqIiA2xN1BBP0W96r2CBSu9KYYivUkvgRRSCKEnM7O/P85JMpNCCCSZSe56fXg8Zc+ZtU7Zs2effSa3XMqtTw3mrQde49iRY7w39C2SdyRRr34Er/7yJisXrOBw1qEAZuRPHEK3l25j+qCxHE7KYOCvz7NrxjL2b070KxdSqwZt77iEvcu3BCjSU3PlgIu56ZrLGfFC+X3clzWPx8uYCV8x8bmhxETWY9DjY+jVtSPNmzTIK/PGp5MZ2LsbV/TpzuLVf/PuF98xZugQAKpXq8bkt0cFKvwKoWPOSyCWUm3PGPNjcQ1zWydgQCnjCKq7Ac7mrfGm7MGkJoHHTc6iubjO7u5Xplrvf3Bs1o9w+CAAJisTAEeDpuBwWg1zgGNHIftYhcZfFFeb1nh2J+JJTAK3myOz5lC9x4n1bIU0a0r2ylXg8WKOHsW9ZSvVu3Ut54hL1qRTC9J2JpORsBdPjocVP/1J+35d/MpsiV9PztFsAHau2Ex4bAQAsS0bsnXxBrweL9lHjpG4YRete3as8ByOp3GnFqT75Lfqp3jaFsjP98tEtdDqwfFF0EeNM88gZ1ciObuTIcfNgV/nU7tvtxN+ffV2LXBG1uPQwuXlGGXp1DizFTm7kvJyyvp1PrX6nHfCr6/etgXOqHAOBzCnjme1Z+f2BBJ27iEnx83P30/n4kt7+ZW56NJefPsfqzf2tx9n0f0C65pv0ep0Fv6+BID0tH0c2H+ADp3aArBy2RpS7TsggdSiU0uSdySxNyEFd46bhT/9zjkXn+tXZl38GrLtumHzio1ExkUBkLQ9keQdSQDs25vB/rT91ImoU7EJlCCqc3MO7Ejh4K5UvDketk1dRJNLzi5U7qwnrmXNBz/jOZoTgChPXZdOHahbJyzQYZTK2s3baRJbn0ax0bhcIfS/4BzmLlnlV2ZbQhLnntkGgK4dWjF38aqiNlVlmXL+L1BOqXEuIs1EZIOIvA8sB24VkXgRWS4ik0Wktl1ugIj8LSJ/iMi7IvKzvXywiIyzp68TkbUiskpEFohINeB54AYRWSkiN4hILRH5RESWisgKEbnCZzuTReQnYIa9bJhdbrWIPOcT89MislFEZgGtTiX/E9pH9aIwGal5896MVKRelF8ZR2wjnHGNqPXMO9R69j1COpxjLY9rhDl8iNCHRlP7hQ+pcePdULrvP+XCGR2FZ+/evHlvairO6KhC5Wr0vJCoSR8T/sJoHPWtYTk5W7ZS/dxzoXp1pG4dqp3VCae9LpDqxkSQmZieN5+ZlEHdmIhiy597fW82zFsJwJ4Nu2jTqxOuGtWoVS+MFue1JTwustxjLo26MfX88tuflE7dmHqFyp1368U8Mf9tBgy/iamjP6vIEEsUEhNFTlL+teROTiMkpvB+Dru4B82mvk+Dd54mJNY+L0Wo/+RdpL72cUWFe0JC6kfiTvbJKSUNVxE51e7Xg6Y/fEDc2/45RT95N2kBzik2rj5JiflD7ZISU4iJ87+mY+Lqk7QnGQCPx8OBrIPUiwhnw7pNXNy/F06nk0ZNGtC+Y1saNIyt0PhLEhEbSVpS/peE9KQ0ImKLv7773HAxK+YtK7S8RceWhFQLIWVncrnEebJCY+txKDEjb/5wUga1Yv3rhoh2TakVF8HuWSsrOrz/aSnpmcRE5X8OxUSGszd9n1+ZM05rzKx468v57EUrOHTkKJlZVkdfdnYONz76EjcPe5k5i1ZUXODqlJVFL3Mr4HZgFPAdcJEx5pCIPAk8KiKvAhOAC40x20Xk62K2Mwq4xBizR0TCjTHZIjIK6GKMeQBARMYAc4wxd4hIOLDEbmQDnAecaYzJEJF+QEugKyDAjyJyIXAIuBHobOe+HChUi4rI3cDdAG+f24rBLRue/N6RIpYV7JF0OHHENOTQmEeRiGhqj3ybA08NAYeTkFbtOTDyXkx6CqEPPIPrwkvImf/bycdTFqSIpArkdHRhPEdmzYGcHEKvGEj408PJePgxspf+xbE2rYj6cBzezExy1q7HeLwVFHjxik6p6G/NZ1/Zg8Znns64G6zvfJt+X02TM0/noe+e52B6FjuWb8YbBDn5KSLBotKL/2Im8V/MpNPl3en74FV881hwjMsuVoEcDs5dzIGf52Nycqh7wwBixz7G7sFPEX7TZRyavxR3cuB7Yv0UeVz8kzo4bxEHfpmXn9PLj7P79uGED7qMQwuWBD6nkqsDpJg8J385lRZnnMbUWV+yZ3cSy5eswu3xlFOgJ0eKSLC4uuGCq3rRvEMLRt3wlN/y8Pr1ePCtoYx77J2ge4Ct6GPjV4Cuo2/hj6ETKi4oZSt8rhQ8Xo8NvpaXJ37Nj7P/5Kx2LakfGY7TaXXiTf94LPUjw9mdnMqdz7xJy6YNaRxXv0IiryjBdj2VlbJonO80xiwSkcuAtsBC++SpBsQDrYFtxpjcp0e+xm74FrAQmCQi32A18ovSD7hcRB6352sATezpmcaYDJ9y/YDcr4q1sRrrYcD3xpjDACLi/0SczRgzEZgIsP/Wvqd05E1GGhKR34vkiIjGZKb7lfFmpOLZugE8HkxqMt6kBJwxjTAZqXh2brGGxAA5yxbibNE24I1zz95UnPXzL3BHdDSeNP+cTFZW3vThn34h7L78Q37w8y85+PmXAIQ/OxJPwu5yjrhkmckZhDfI7w0Lj4sga+++QuVant+eix64ivE3PIcn2523fNb4H5g1/gcAbnnnQdK2J5V/0KWwv0B+deMii8wv16qf4rnqxSEVEdoJc6ek4fLpkQ2JjcK9t8C1lHkgb3r/5GlEP34HADU7taHm2e0Iv+kyJLQG4nLhPXSUtDf9H1ysaO6UNEJifXKKicK9N8OvTMGcoh6zjkuNTm2oeXZ7wgcNxBFaA1wheA8fqfCckhP3EtcgJm8+rkEMe33uBlhlUohrGEty0l6cTidhdWqTuW8/AC+OfCOv3ORfJ7GjwHj7QEtPTiMqLv/OYGRcFPtSMgqV63B+R6554DpGXT8Ct0/dULN2TUZ8Oor/vP4lm1dsrJCYS+NQUga1GuT3zobGRXA4Jb9ucNWuQb3Wjeg/5WkAakbX5aJPH2XW7W9WuodCK5uYyHqkpOWfaynpmURHhPuVqR8ZzltP3QfA4SNHmRW/nLBaoXnrABrFRtOl/Rls2JZQ5RrnVVVZjJHIfbJFsBrInex/bY0xQyi677gQY8y9wEigMbBSRIq6byjANT7v0cQYs6FAHLnlXvYp18IY83+5b1XaBE+FZ9vfOGMbItGx4AzB1a03Ocv/9CvjXraQkDadrMBr18ER2whvahKebRuRWmFIWF0AQtp2xrtnZ6H3qGg5f/+Ns3FDnHGxEBJCzYv6cGyhf06OyPzKvnqP7rh32h+4DgdSxxpzGdL8dEKan86xpUsrLPbiJKzaSnSzWCIaReN0Oek8sDtrZ/rfVGnYrhnXjbmL/7vzNQ6m53/5EIcQGl4bgLjWTYhr3YSNv6+u0PhLsnvVViKbxVLPzq/jwPPYUCC/yGb5wwla9+lM2o7guv1+dM0mXE0b4GoYA64Qwgb05OCcRX5lnNH5t+Nr9+lG9lbrob2kYa+yrc9tbOs7mNRXPyZr6qyAN8wBjq7ZiKtpA0LsnOoM6MmhuQVzyr+WavfpRvY261pKfuJVtvf9J9svuo3UVz/mwNTZAclp9Yp1NDu9CY2aNMDlCuGyqy5h1rR5fmVmT5vPNTcOBODSyy8i/nfrmq9RswY1Q2sA0KPnuXg8Hr8HSYPBllWbiTutAfUbxxDiCuH8gRewdOZivzKntTude16+n7FDXiQrfX/e8hBXCE9MHMH8b+cS/+vCig79hKSt3Ead02Kp3Tgah8vJ6Vd0I2FG/jMMOQeO8HWH+5jSbShTug0ldflWbZhXkHYtm7EzaS+7U9LIyXEz7fel9Orq/zzTvqwDeL3WndqPp/zGVX2t57+yDh4iOycnr8zKDVtp3jiuYhOoAF5Muf4LlLJ8eHIRMF5EWhhjtohIKNAI+Bs4XUSaGWN2ADcU9WIRaW6MWQwsFpGBWI30A1i93bmmAw+KyIPGGCMinY0xRQ2kmg68ICJfGmMOikhDIAdYgNU7PxYr94FYQ27Kj9fLkc/fo9awV6yfUlzwG949O6l+9WA82zfiXhGPe81SQjp0ofbYT8Dr4eh/JmIOWo2/o19PoNbw10HAs2Mz2XN/KddwT4jHS9ab7xLx5qvgcHDkl99wb99B7SG3k/P3Ro4t/JNa115tPSTq8eDNyiLzJfu53xAnkePfAcAcPkzm8y9BEAwB8Xq8fDfqU+7+fAQOp4Ml38wlZfNu+g+9joQ121g3axkDn7qZ6qHVue39RwDYtyeNT+56HacrhAcmjwashyq/HDou6Ia1eD1epo6axJDPn8LhdLD0m3mkbN7NxUOvZfea7WyYtYzut/Wj5fkd8LjdHNl/KPiGtHi87H3hAxr934vgcLL/2xlkb9lF5IO3cnTtJg7NXUy9W6+gdu9uGI8H7/4DJD/1RsnbDSSPl9QX36fRxy+Bw0HWdzPI3rLTzmkzh+Yuot4tV1CrTzdwe/AEYU4ej4fRw1/hs8nv43A4mPzVVDZv3MYjw+9jzcr1zJ42n/9++QNvvv8ic5ZMZX9mFg/dNRyAyKh6fDb5fbxeLylJqTx638i87T757MNcfs2l1AytwcLV0/jm39/zzqsVP7TC6/Hy8agJjPx8NA6ngznfzGL35gRuePQmtq7ewl+zlnDriMHUCK3JY+8/CUBaYiqv3PkS513WgzZd21E7PIxe1/YBYPzj77BjffA0bI3Hy6KRn9HvqycQh4PN/51P5qY9dH78GtJWbSdhZvA8QH0qhj07lqUrVpOZmUXfK2/h/iG3cs3ASwId1nGFOJ2MuHsQ941+G4/Xy5V9z6dFkwaM/3IqbVs0pfe5nVi6ZhPvfvE9InBW2zN4+t5BAGxLSOb5D77AIQ68xssd1/T3+5UXFdzkVMbriEgz4GdjTHt7vg/wClDdLjLSGPOj3dh+DUgDlgAxxpibRWQw9phyEfkOa+iJALOBR4B6WA1tF/Ay8CPwNtDdLrfDGHOZ73Z8YnsYuNOePQjcYozZKiJPA/8EdgK7gfXH+ynFUx3WEmwObw+uRmNZeG13TMmFKhnXid1wqlTuqJEZ6BDKlEiVqhoA6J8a+L+hUNbOqtU40CGUuX+4g+sXX8rCLaueD3QIZcqbllByoUqoeuueQfXh1Dn2/HKtiFckLwxIvqfUc273hLf3mZ8DnFNE0bnGmNZiDUYfD/xll58ETLKnry7idRlFbO+eIuLI247PsneAd4oo+xLwUpEJKaWUUkopFUAV9Zvgd4nIbVgPia6gvIeSKKWUUkqpKq2q/hGiCmmcG2PeAt6qiPdSSimllFKqsgqqv6aplFJKKaXUiQjkX/EsT4H/c5NKKaWUUkopQHvOlVJKKaVUJeSton8hVHvOlVJKKaWUChLac66UUkoppSodHXOulFJKKaWUKlfac66UUkoppSodHXOulFJKKaWUKlfac66UUkoppSodHXOulFJKKaWUKlfac66UUkoppSodHXOulFJKKaWUKlfac66UUkoppSqdqjrmXBvnSimllFKq0qmqw1q0cV4Cd6Y70CGUqWMHqwU6hDLnroLfnL/KXBXoEMrcExfUD3QIZUqq4KDAkDRnoEMoc9WoejldM2BvoEMoc960hECHUKYcUY0DHYKqxLRxrpRSSimlKp2qOqylCvb9KKWUUkopVTlpz7lSSimllKp0jPEGOoRyoT3nSimllFJKBQntOVdKKaWUUpWOV8ecK6WUUkoppcqT9pwrpZRSSqlKx1TR3znXnnOllFJKKaWChPacK6WUUkqpSkfHnCullFJKKaXKlfacK6WUUkqpSkfHnCullFJKKaXKlfacK6WUUkqpSserPedKKaWUUkqp8qQ950oppZRSqtIx+mstSimllFJKqfKkPedKKaWUUqrSqaq/1qKN8wrgOqsrte56EBwOjs78haNTvipUplqP3tQcNBgweLZv5eDrL+CIjiFsxAvgcEBICEd/+o5j036s8PiLUrN7FyKeuB8cDg5+/xv7P/2v3/ral/ej3iN34UlNByDrP1M5+P1v1OjSkYhh9+WVczVrTOrwlzg8988Kjb8obXp25OpRg3E4HcT/dw6zPpjqt773kH9w3o198Lg9HMzI4qsnPmTfnjQALh9+M+36dEYcDjb+vppvn5sUgAygd98evDB2BE6ngy8/n8K4tz/2W1+tmov3PnyFMzu1ZV9GJvfc8SgJuxIBaNPuDF576znCwmrj9Xrp3+c6jh3LZvjIh7nuxisID69D80ZdApFWnqp4Lbk6dyXUzunYzF84+m0ROZ1v5WSMldOhN62cag/Pz+nYL8GTk68L+pzH0y89jtPpYPK/f2Diu5/5re9yXmeefvExWrVtwdC7n2b6T7MDFGnxzuzZmX8+OwSH08Hc/8zipw++81s/4M7L6XXjRXjdHrIyspg4bBxpe1KJahjN0AlPIg4HIS4n0yf9yuwvpwcoC3/Odl2oceN9iMNB9u/TyJ7230JlQrpcSPWBtwIGb8I2jnw8FmerjtS44d68Mo7YxhyZOAb3ysDX4X8sX8srH/0Xr9fL1Rf3YMi1l/qtT9ybzqj3PmPf/gPUDavFmKFDiI2qB0Cnq+6hZdOGAMRGRfDeyAcqPP7SGjnmTRYsXEJEvXB++PeHgQ5HlaH/yca5iDQDuhtjCn8KljWHg1r3PkLWM4/hTU+l7psTyFm8EE/CzvwicQ2pee3NZD3xL8yhg0jdcAC8+9LZP+xf4M6BGjUJH/cp2UsWYjLSyz3s43I4iHjqQVLufRJ3ShoNvhzH4fnx5Gzb5Vfs0Iz5ZIwd57fs6F+rSLQrdkedMBr+NIkj8csqLPTiiEO47vk7GH/LS2Qmp/P4jy+zduZfJG/Zk1dm9/odvDbwKXKOZtPjlou54qmbmfTAO5x21hmc3qUVY/sPA+CRKc/ToltbtixaX6E5OBwOXn79Ga6/cghJiSlMm/sNM36by6aNW/PK3HTrtWRm7ue8s/pzxdUDGDn6ce6541GcTifjJ77KA/c8yfq1G6lXL5ycHDcAM6bN45OPviJ+2W8Vmk8hVfRaCr3nEQ48a+VU5/UJZC9ZiLdATjWuvZmsJwvnlPVkfk513w2SnHw4HA6eHfskt1/3L5ITU/h2xufMnraArZu255VJ2p3M8AdHM+T+WwMYafHE4eD2F+7m5ZtHk56czos/vsryWUvYs3l3Xpkd67Yx8rLHyT6azUW3XMKgp/7Jew+8wb69+3j26uG4s91UD63BqzPeYdnMJWTu3RfAjABxUPOmBzj01nDMvjRqPf0e7lXxeJPy63BH/QZUv/RGDr0yFA4fRMKs886zcRWHnrc7WELDCBvzKe71ga/DPR4vYyZ8xcTnhhITWY9Bj4+hV9eONG/SIK/MG59OZmDvblzRpzuLV//Nu198x5ihQwCoXq0ak98eFajwT8qVAy7mpmsuZ8QLrwc6lIDRvxBatTQDbqqINwpp2QZP0h68KUngdnNswRxc5/bwK1PjkoEc/fV7zKGDAJj9mdYKt9v64AXE5bJ6yIJA9fatcCck4t6TDG43h6bPI7RX91JvJ/TiCziycCnm6LFyiLJ0mnZqQerOFNIT9uLJ8bD8pz/p0O8cvzKb49eRczQbgB0rNhMeGwlYD6S4qrsIcYUQUs2FM8TJgdT9FZ5D57PPZPu2XezauZucnBx++PZXLhnQx6/MJQP68M3X1h2Bn6dOp0fPbgD06nM+69duZP3ajQDs25eJ1+sFYPlfq9ibklqBmRStKl5LIS3b4E3Ozyn79zlU6+qfU/V+AzlWiXLydeZZ7di5I4GEnXvIyXHzyw8zuOjSnn5l9iQksXH9FrzGG6Aoj69Fp5ak7Ehib0IKnhw38T/9wdkXd/Ursz5+Ldl23bB5xSYi4qy6wZPjxp1tfcl1VXMhDqnY4IvhPK0V3tRETFoyeNzkLJ1PSCf/Otx1wQCy5/4Ih+3z7kBmoe24zr4A99q/IDvwdfjazdtpElufRrHRuFwh9L/gHOYuWeVXZltCEuee2QaArh1aMXfxqqI2VWl06dSBunXCAh1GQBljyvVfoFSpnnMR+SfwOGCA1YAHyAK6ALHAE8aYKcBYoI2IrAQ+M8a8VV4xOSKj8KbtzZv3pqfiOqONXxlnw0YA1HllHDgcHPl6EjnLl1ivj4ombNQrOBs05NAnHwRFr5izfhTu5PzGmjsljeodWhcqF9q3BzXO6kDOzt1kvP4hngINvFqX9CLri2/LPd4TER4TQWZi/r7NTEqnaacWxZbvdn1v1s9bCcCO5ZvZFL+OF5ZOQBAWfD6NlK17in1teYmLq0/inuS8+aTEFM46+8wCZWJI3JMEgMfj4UDWASIiwjm9RTMM8PW3HxEZFcHUb39l/Lv/V5Hhl6gqXksSGYWnQE4hBXNqYOUUNnYckpvTivycaj/zCs64hhyeFBw5+YqJq0/ynpS8+eTEvXQ8u30AIyq9erERpCel5c1nJKXTovMZxZbvfcNFrJq3PG8+Ii6SJz4dSUyzOL4a81nge80BCY/Cm5FfH5t9qThP86/DHTHWeRf65FvWkKsfv8Cz7i+/Mq6uvcieGRx1eEp6JjFREXnzMZHhrPG5QwNwxmmNmRW/nFsG9mX2ohUcOnKUzKyDhNepTXZ2Djc++hJOp4Mh1/SnT7fOFZ2CUnmCr6vlJIlIO+BpoI8xpiPwsL0qDugBXIbVKAcYDvxujOlUng1zO7BCiwp9GXM6cTZoRNaIhzn4+vPUenAYUqs2AN60VPY/dAf77r6JGn37I+H1yjXcE1JETgWTOjw/nt0DbiXx+ns4ungFUS8M81vvjIqgWovTOBLvX9kHzIkcJ1uXK3vQ5MzmzJloje+NahpDbIuGjOp2H890u5czurenedc2Rb+4HElRORS45VdkGQMhTifndjuLf901jCv638yll11Ejwu7lVusJ6UqXksUdS0VmLdzOvC0ndMD/jllPXwHmffeRPXe/ZG6wZBTvqKrisp1G1qKOEbF5XD+VT05rUNzfp7wQ96yjKR0hvcfytAL7+PCa3pTJ6puucV6worswC+Qk9OBI6Yhh19/nCMfvUzN24ZCzVr5m6gbgaNhM9zrgqQOL2J4Q8H67rHB17Js7Sauf+QF/lq7ifqR4TidVjNo+sdj+c+bT/PKY3fy6v99Q0LS3kLbU8HHa0y5/guUKtM4B/oAU4wxaQDGmAx7+Q/GGK8xZj0QcyIbEpG7ReQvEfnrs51JpxSUNy0VR1T9vHlHZDTejLRCZbIX/wEeD96UZLx7EnDYvWW5TEY67l07cLX17wkNBE9KKiGx0XnzITFReQ9+5vLuPwA51i33A9/9SvU2/j1Nof16cnjuQnB7yj/gE5CZnE54g8i8+fC4SLKK6OE64/wO9Hvgaibe+Wre7eozL+nKjhWbyT58jOzDx9gwbyXNOressNhzJSam0KBhbN58XIMYkgt8wCQmJtOgYRwATqeTsDph7NuXSWJiCvELl5KRkcmRI0eZPXMBZ3ZsW6Hxl6QqXksmPRVnSTml++S0NxnPngQccYVz8iTsIKRd4HPylZy4l9iG+dVubIP67E0O/BCp0shITicyLipvPiIukn0pGYXKtT//TK584FreuPPlvLrBV+befezetIvWXQN/XZl9aTgi8utwqReNNzOjUBn3yj/B48GkJeNN3o0jpmHeeleXC3GvsNYHg5jIeqSk5eeQkp5JdES4X5n6keG89dR9fPP2Mzx0y5UAhNUKzVsH0Cg2mi7tz2DDtoQKilypwqpS41wo6qszHCtQpkTGmInGmC7GmC63NY07paDcm//G2aARjphYCAmh+oV9yFmy0K9M9qI/COlg3UKTOnVxNGiMNzkRR2Q0VKtmLa9VG1eb9nj2BL7COLZuIyFNGhLSwMqp1iW9ODw/3q+M0+f2YmjP88jZ7v+waO3+vTn029wKifdE7Fq1lehmsUQ0isbpcnLWwO6smenfI9SoXTNuHHMnH935KgfTs/KW70tMo8W5bXE4HThCnDQ/tw0pW3YXfItyt3L5Gk5v3pQmTRvicrm48poBzCiwj2f8NpfrB10BwGVXXMLCBYsAmDf7D9q0a0XNmjVwOp2cd/45fg+SBoOqeC25N/+NI64RjvpWTtUuKJxTzqI/cOXmFFYXR8PGeFMSkQI5hbRujzcIcvK1ZsV6mp3WmEZNGuByhfCPK/sxe9qCQIdVKltXbSb2tDiiG9fH6QrhvIE9WDZzqV+Zpu1OY8jL9/HGkDFkpec/bxIRG4mrunWMatWpxRld2pAUgCFvBXl2bMRRvyESFQvOEFzn9MS9yr8Oz1nxJ85WnQCQ2nVwxDTCpOZ3VoV07U3OkuCpw9u1bMbOpL3sTkkjJ8fNtN+X0qtrR78y+7IO5D1L8/GU37iq7/kAZB08RLbdmbQv6wArN2yleeNT++xXFUPHnAe/2cC1O3TyAAARKklEQVT3IvKWMSZdRCKOU/YAUDFPUXg9HPrwbeo897o1bm/Wr3h27aDmzXfg3vw3OUv+JGf5Elydz6Hu+M/A6+Xwpx9gDmQR0qkLYXfcj/WdQzjy/X/x7NxWIWEfl8dLxthxxHzwsvVTilOnk7N1J+H33cax9Zs4Mj+esEFXEtrrPHB78GQdIG3Ua3kvD2kQgzM2mqPLVgcwCX9ej5cpoz7h/s9H4HA6WPTNPJI372bA0OvYtWYba2ct44qnbqFaaA1uf38oAPv2pPHRXa+x8tdFnNG9PcOnvw7GsGH+StbOXl7CO5Y9j8fDiGEv8vW3H+N0Ovj639+x8e8tPDHiQVauWMuM3+by1RdTGDfhFeKXTyNz337uueMxAPbvz2LC+ElMmzMZYwyzZy5g1oz5ADzz3ONcde0/qBlak+XrrG28PnZ8hedXJa8lr4fDE98mbLSd0+xf8STsoOZNd+DeYue0ws5p3GcYj5cjk+ycOnYh9I77rbE9Ihz9IUhy8uHxeHj+qdf4v2/ew+lwMuXrH9mycRsPPXkPa1duYM70BXTo1Jbxn71Gnbp16N3vAh564m7+ccENgQ49j9fjZdKojxj++bM4nA7mfTObPZsTuPbRQWxbvYXls5Zy84jbqBFag4fet4bvpSem8sadL9OgRSNuGWn9BKaI8MvEH0jYuKuEd6wAXi9HvxpH6CNjEHGQvXA63sSdVL/8n3h2bsK9ahGedX8R0u5saj33kVV+ykeYQwcAkMgYHPWi8WwKnjo8xOlkxN2DuG/023i8Xq7sez4tmjRg/JdTaduiKb3P7cTSNZt494vvEYGz2p7B0/cOAmBbQjLPf/AFDnHgNV7uuKa/36+8BKthz45l6YrVZGZm0ffKW7h/yK1cM/CSQIelyoBUtvF/xyMitwHDsB4EXWEv/tl+CBQROWiMqS0iLmAaEAVMOt648/SBPavODgIOJFQLdAhl7s3M430Pq5y+yQyeD72ysu6C+iUXqkSkKt13tHX781CgQyhzXUIbBzqEMvdhv6p3nKo/9nSgQyhTjqiqd94BuKJOD46fHLLVrd28XNto+w9uDUi+VannHGPMZ8Bnx1lf2/5/DtC3ouJSSimllFLqRFSpxrlSSimllPrfUJVGf/iqgjdmlVJKKaWUqpy051wppZRSSlU6gfwt8vKkPedKKaWUUkoFCe05V0oppZRSlU7Bv4JdVWjPuVJKKaWUUkFCe86VUkoppVSlo2POlVJKKaWUUuVKe86VUkoppVSlo79zrpRSSimllCpX2nOulFJKKaUqHf21FqWUUkoppVS50p5zpZRSSilV6VTVMefaOFdKKaWUUpVOVW2c67AWpZRSSimlgoT2nCullFJKqUqnavaba8+5UkoppZRSQUOq6nidykhE7jbGTAx0HGWlquUDmlNlUdVyqmr5gOZUWVS1nKpaPlA1c/pfpz3nweXuQAdQxqpaPqA5VRZVLaeqlg9oTpVFVcupquUDVTOn/2naOFdKKaWUUipIaONcKaWUUkqpIKGN8+BS1caMVbV8QHOqLKpaTlUtH9CcKouqllNVyweqZk7/0/SBUKWUUkoppYKE9pwrpZRSSikVJLRxXkZE5M+TfN2VItL2FN63mYjcdLKvVydPRMJF5H6f+V4i8nMgY8olIjtEJKqI5Sd1npbmPcpawf1c1YjIiEDHUJbsOmltoOM4USLyq4iEl6J8wPITkYOBeN/SEpFJInJtgN77chEZfpz1nURkQDm+/2gReby8tn+CMWi7oJLTxnkZMcZ0P8mXXgmcdOMcaAZUiotQRJyBjqGMhQNB12g83n4+hfM0kIJyP5ehKtU4r2yMMQOMMZmBjkMVJpZStVOMMT8aY8Yep0gnoFSNcxGpbH9NvRmVpF2giqaN8zKS26Nh957OE5EpIvK3iHwpImKvGysi60VktYi8LiLdgcuB10RkpYg0F5G7RGSpiKwSkW9FJNR+7SQReVdE/hSRbT69EmOBC+zXDw1E7rlE5AURedhn/iUReUhE5orIV8CaAIZXJLuH4W8R+VhE1trH6yIRWSgim0Wkq90T8ol9XLeJyEP2y8cCze19/5q9rHZRx74U8TyRu30ReUtE5tjTfUXk3yIySETW2LG+4vO6gyLyvIgsBs7zWV5TRKaJyF255ez/H+88HWAv+8M+5362l0eKyAwRWSEiEwDxeZ8fRGSZiKwTkbvtZUNE5C2fMneJyJul2R82v/0sIsPsa2S1iDxnb7vE42iXGy0iX4jIHHv5XScRz0kruJ9EZCxQ087tS7vMLSKyxF42QewvW/YxfsV+/Sz73Mw9Jy+3ywwWkan2Md8oIs9WZH4+nCLykZ3nDPs8nCciXew4o0Rkh0/MP4jITyKyXUQeEJFH7fNskYhEnEogJ3BN7bDjaSYiGwrGbZc9W6w6OR74l8+22/kcq9Ui0tLnXPzMXjZF8uvxs0Vkvn0Mp4tInL28uX3MlonI7yLS2l5+mojE2+f7C6ewD/5px7LKPv8Hishiex/PEpEYu1xPO5eV9rowKXBHUETGichge3qUHdtaEZkoUrr6rphYc4/D+8By4FZ7HywXkckiUtsuV1w9NVhExtnT19mxrRKRBSJSDXgeuMHO8QYRqSVW/b7UzvkKn+1MFpGfgBn2skJ1j738aft6mwW0OtV9cJx9U/A4Bn27QJ0kY4z+K4N/wEH7/72A/UAjrC8/8UAPIALYSP5DuOH2/ycB1/psJ9Jn+kXgQZ9yk+1ttgW2+Lzfz4HO346lGbDcnnYAW4FrgEPAaYGO7zgxu4EOdszLgE+wGp5XAD8Ao4E/gepAFJAOuOzXrvXZVpHHvpTxdAMm29O/A0vs93rW/rcLiAZCgDnAlXZZA1zvs50ddnyzgH+W4jytASTkHi/g69zzC3gXGGVP/8N+zyh7PsL+f01gLRAJ1LLPAZe97k+gw0keo7X2dD+sXyYQO+6fgQtP5Djarx8NrLLjjLJzbVCB51tR++mgz/o2wE8+++z93ONn7+9L7envsRoMLqAjsNJePhhIsreb+x5dAnRNdbLnvwFuAeblxmLv+x0+MW8Bwuxzez9wr73uLeCRU4zneNfUPVjXSlRxcdvTq4Ge9vRrPufje8DN9nQ1e583s4/V+fbyT4DH7ff8E4i2l98AfGJPzwZa2tPnAnPs6R99jv+/fM+VUuTfDuuzJ+9aBeqR/1l0J/CGPf2TT9y1seqZXvh8xgDjgMG+57M9/QUw0J6ehM/n2kmcP177uEUBC4Ba9rongVEcv54aDIyzp9cADe3p8ILr7fkxPsc5HNiEVXcNBnaTf80WV/ecbb9PKFAH61x+vByuq6KO4ySCvF2g/07un/acl48lxpjdxhgvsBKrsskCjgIfi8jVwOFiXtve7jlZA9yMdUHm+sEY4zXGrAdiyi/8k2OM2QGki0hnrIpsBVZDdokxZnsgYyvBdmPMGvt4rQNmG6uGW4N17AB+McYcM8akAXspfv8XdexLYxlwtoiEAcewGs1dgAuATGCeMSbVGOMGvsT6cADwAN8W2NZU4FNjzOeliLU1sM3neH3tU/5C4N8AxphfgH0+6x4SkVXAIqAxVkPjENYXiMvsnkCXMeZU7570I//cWm7H29JedyLHEWCqMeaIfSznAl1PMabSKLSfCqzvi/Vhv1REVtrzp9vrsoFp9vQaYL4xJofC+c00xqQbY44A32F96apo240xK+3pZZR8Hcw1xhwwxqRiNc5/spcXzO1kHO+a+r2kuEWkLlbDbr69/Auf8vHACBF5Emhq73OABGPMQnv631jHoBXQHphpH9uRQCO7J7g7MNlePgGIs197PvnXoO/7lkYfYIp9vmOMycD6Uj7d/pwZRv7nzELgTbHuNITb9czx9LZ74NfY79OuhPInaqcxZhFWA70tsNDeN7cBTTl+PeVrITBJrDtkxQ336wcMt7c/D6vh38ReN9PeX7nliqp7LgC+N8YcNsZkYX2hKg9FHUcI8naBOjmVbRxVZXHMZ9oDhBhj3GLdWu8L3Ag8gHWxFTQJqzd0lX3rsFcx2z3l24fl5GOsHodYrB4jsHrOg5nvfvX6zHvJv0YKHdMT2NbxyhXJGJMj1u3+27F62VYDvYHmWL3mZxfz0qPGGE+BZQuBS0XkK7uReiKxlnReFdqOiPQCLgLOM8YcFpF5WB9wYJ0PI4C/gU9L2PaJEOBlY8yEAjE048SOIxTOoUJ+T7aE/ZRXDPjMGPNUEZvI8TmOefkZY7ziPyY2IPkVUPDcqonVK53bIVQw7xM9dqVWwjW14QTiForZh8aYr8QaSvYPrMbuncC2IsobezvrjDHn+a4QkTpApjGmU3EpHDfBkhUV/3vAm8aYH+3zcjSAMWasiPyCNSZ7kYhchP9xA/vYiUgNrDs7XYwxCSIymsLH9WTlfmYIVgN5kF9CVgdQiYwx94rIuVjHZ6WIFLWPBbjGGLOxwHuci/9nV3F1zyNUzDVW3HlYGdoFqpS057yC2L0jdY0xvwKPYD2UAnAA63ZurjAgSURcWD3nJSn4+kD7HugPnANMD3As5a289v0CrNvgC7B69u7F6tleBPQUa3ysExgEzC92K9bt33SsD9AT9Tdwut3YBevWu29cNwOIyKVYt8YB6gL77AZna6zeLgCMMYuxeohvovjerZL47ufpwB0+404bikj9Um7vChGpISKRWF9+l55kXKVV3H7Ksa93sIY3XJubk4hEiEjTUr7PxfbramI9cL6wpBdUkB3kf7ms6F/yKPKaKuZLqx9jPSy6X0Ry70Dk1csicjpWD+67WD2mZ9qrmohIbiN8EPAH1pCE6NzlIuISkXZ2b+t2EbnOXi4i0tF+7UKszhy/9y2l2cD19vmOWGP46wJ77PW3+eTT3L779ArwF1bv8E6grYhUt+8i9LWL5zbE0+zrsTyO6SLgfBFpYccXKiJncPx6Ko+dz2JjzCggDasuKlhvTwceFMl75qa4hn9xdc8C4CqxnqsIAwaedLbHV9RxLE6wtQtUKWnjvOKEAT+LyGqsBlXuQxr/AYbZD6I0B54BFgMzsSqgkqwG3PYDIgF/8MMYk401VOCbInpyqxRjTDrW7da1kv9AaFn4Heu2drwxJgVrONTvxpgk4Cms/bsKa3z/1BK29QhQQ0RePZE3tm/L3w9ME5E/gBSsYQYAzwEXishyrNu7u+zl04AQ+9x+AesD1dc3wEJjzD5Ogu9+Bi4GvgLi7VvpUyj9h9AS4Bc7zheMMYknE9dJKG4/TQRWi8iX9q3pkcAMu9xM8oc4nKg/sIZArAS+Ncb8VSbRn7rXgfvE+jnPcv8JzgKKvKZK8frbgfFiPRB6xGf5DcBae0hEayB3CNkG4Db7GEYAH9h147XAK/bQppVYw1nAangPsZevw3pOAuBh4F8ishSrQV1qxph1wEvAfHv7b2L1lE8Wkd+xGq25HrHrs1V2nr8ZYxKwruHVWEPpVtjbzQQ+whp69APl8CXXHuY0GPja3peLgNYl1FO+XhP7AXqsRvQqrPqzrdgPhGJdiy6sa3CtPV9ULDMoou4xxiwH/ot9vVG68+qEFXMcixNU7QJVevoXQlWZEutnr5YD1xljNgc6HlV6IlLbGHPQ7kkaD2w2xrxV0uuOs72fgbeMMbPLLMiTj2U01kN1rwc6lvJgD4XrYox5INCx/K+ye3N/Nsa0D3AoVVpZ11NKBRPtOVdlRqw/prQF60E8bZhXXnfZPYHrsHrrJpRQvkhi/fGgTcCRYGiYK6WqlDKpp5QKRtpzrpRSSimlVJDQnnOllFJKKaWChDbOlVJKKaWUChLaOFdKKaWUUipIaONcKaWUUkqpIKGNc6WUUkoppYKENs6VUkoppZQKEv8PNvp//N3a/DEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 936x648 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_corr = data.corr().abs()\n",
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season_1</th>\n",
       "      <th>season_2</th>\n",
       "      <th>season_3</th>\n",
       "      <th>season_4</th>\n",
       "      <th>holiday_0</th>\n",
       "      <th>holiday_1</th>\n",
       "      <th>weathersit_1</th>\n",
       "      <th>weathersit_2</th>\n",
       "      <th>weathersit_3</th>\n",
       "      <th>...</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>holiday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>cnt</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>cnt.1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.355170</td>\n",
       "      <td>0.373517</td>\n",
       "      <td>0.828620</td>\n",
       "      <td>0.284606</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>985</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.379232</td>\n",
       "      <td>0.360541</td>\n",
       "      <td>0.715771</td>\n",
       "      <td>0.466215</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>801</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.171000</td>\n",
       "      <td>0.144830</td>\n",
       "      <td>0.449638</td>\n",
       "      <td>0.465740</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1349</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.174649</td>\n",
       "      <td>0.607131</td>\n",
       "      <td>0.284297</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1562</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.209120</td>\n",
       "      <td>0.197158</td>\n",
       "      <td>0.449313</td>\n",
       "      <td>0.339143</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1600</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 27 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant  season_1  season_2  season_3  season_4  holiday_0  holiday_1  \\\n",
       "0        1         1         0         0         0          1          0   \n",
       "1        2         1         0         0         0          1          0   \n",
       "2        3         1         0         0         0          1          0   \n",
       "3        4         1         0         0         0          1          0   \n",
       "4        5         1         0         0         0          1          0   \n",
       "\n",
       "   weathersit_1  weathersit_2  weathersit_3  ...        temp     atemp  \\\n",
       "0             0             1             0  ...    0.355170  0.373517   \n",
       "1             0             1             0  ...    0.379232  0.360541   \n",
       "2             1             0             0  ...    0.171000  0.144830   \n",
       "3             1             0             0  ...    0.175530  0.174649   \n",
       "4             1             0             0  ...    0.209120  0.197158   \n",
       "\n",
       "        hum  windspeed  holiday  workingday   cnt  yr  mnth  cnt.1  \n",
       "0  0.828620   0.284606        0           0   985   0     1    985  \n",
       "1  0.715771   0.466215        0           0   801   0     1    801  \n",
       "2  0.449638   0.465740        0           1  1349   0     1   1349  \n",
       "3  0.607131   0.284297        0           1  1562   0     1   1562  \n",
       "4  0.449313   0.339143        0           1  1600   0     1   1600  \n",
       "\n",
       "[5 rows x 27 columns]"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读取出数据预处理后的数据文件\n",
    "file2 = open('C:/Users/chenxi/Desktop/learn/机器学习/作业/共享单车/FE_day.csv')\n",
    "db = pd.read_csv(file2)\n",
    "db.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(731, 27)"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "db.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将数据集拆分为训练集和测试集，比例：8-2\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "Y = db['cnt'].values\n",
    "X = db.drop(['yr','instant','cnt'],axis = 1)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=100)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [],
   "source": [
    "#导入训练的包\n",
    "\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.linear_model import Ridge\n",
    "from sklearn.linear_model import RidgeCV\n",
    "from sklearn.linear_model import Lasso\n",
    "from sklearn.linear_model import ElasticNet\n",
    "\n",
    "from sklearn.metrics import r2_score#R square\n",
    "from sklearn.metrics import mean_squared_error #均方误差\n",
    "from sklearn.metrics import mean_absolute_error #平方绝对误差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>cnt.1</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>atemp</td>\n",
       "      <td>1.524898e-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>temp</td>\n",
       "      <td>1.168237e-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>season_4</td>\n",
       "      <td>8.693655e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>season_1</td>\n",
       "      <td>8.220628e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>weathersit_1</td>\n",
       "      <td>6.207914e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit_2</td>\n",
       "      <td>4.954885e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>4.141647e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>weekday_1</td>\n",
       "      <td>1.421929e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>holiday</td>\n",
       "      <td>1.299329e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>holiday_1</td>\n",
       "      <td>1.299329e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>weekday_3</td>\n",
       "      <td>1.077917e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>hum</td>\n",
       "      <td>7.757002e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>weekday_2</td>\n",
       "      <td>4.441494e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>weekday_0</td>\n",
       "      <td>-1.494000e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>mnth</td>\n",
       "      <td>-2.395912e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>weekday_5</td>\n",
       "      <td>-3.896337e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>workingday</td>\n",
       "      <td>-4.786580e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>weekday_6</td>\n",
       "      <td>-6.712711e-14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday_0</td>\n",
       "      <td>-1.299329e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>weekday_4</td>\n",
       "      <td>-1.733692e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>season_3</td>\n",
       "      <td>-2.367177e-13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>weathersit_3</td>\n",
       "      <td>-1.116280e-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season_2</td>\n",
       "      <td>-1.455108e-12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         columns          coef\n",
       "23         cnt.1  1.000000e+00\n",
       "17         atemp  1.524898e-12\n",
       "16          temp  1.168237e-12\n",
       "3       season_4  8.693655e-13\n",
       "0       season_1  8.220628e-13\n",
       "6   weathersit_1  6.207914e-13\n",
       "7   weathersit_2  4.954885e-13\n",
       "19     windspeed  4.141647e-13\n",
       "10     weekday_1  1.421929e-13\n",
       "20       holiday  1.299329e-13\n",
       "5      holiday_1  1.299329e-13\n",
       "12     weekday_3  1.077917e-13\n",
       "18           hum  7.757002e-14\n",
       "11     weekday_2  4.441494e-14\n",
       "9      weekday_0 -1.494000e-14\n",
       "22          mnth -2.395912e-14\n",
       "14     weekday_5 -3.896337e-14\n",
       "21    workingday -4.786580e-14\n",
       "15     weekday_6 -6.712711e-14\n",
       "4      holiday_0 -1.299329e-13\n",
       "13     weekday_4 -1.733692e-13\n",
       "2       season_3 -2.367177e-13\n",
       "8   weathersit_3 -1.116280e-12\n",
       "1       season_2 -1.455108e-12"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#尝试缺省参数的线性回归\n",
    "# 线性回归\n",
    "#class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)\n",
    "feat_names = db.drop(['cnt','yr','instant'],axis = 1).columns\n",
    "# 1.使用默认配置初始化学习器实例\n",
    "lr = LinearRegression()\n",
    "\n",
    "# 2.用训练数据训练模型参数\n",
    "lr.fit(X_train, y_train)\n",
    "\n",
    "# 3. 用训练好的模型对测试集进行预测\n",
    "y_test_pred_lr = lr.predict(X_test)\n",
    "y_train_pred_lr = lr.predict(X_train)\n",
    "\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(feat_names), \"coef\":list((lr.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LinearRegression on test is 1.0\n",
      "The r2 score of LinearRegression on train is 1.0\n"
     ]
    }
   ],
   "source": [
    "# 使用r2_score评价模型在测试集和训练集上的性能，并输出评估结果\n",
    "#测试集\n",
    "print('The r2 score of LinearRegression on test is', r2_score(y_test, y_test_pred_lr))\n",
    "#训练集\n",
    "print('The r2 score of LinearRegression on train is', r2_score(y_train, y_train_pred_lr))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "岭回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is 0.999999989410512\n",
      "The r2 score of RidgeCV on train is 0.999999989414551\n"
     ]
    }
   ],
   "source": [
    "#岭回归／L2正则\n",
    "#class sklearn.linear_model.RidgeCV(alphas=(0.1, 1.0, 10.0), fit_intercept=True, \n",
    "#                                  normalize=False, scoring=None, cv=None, gcv_mode=None, \n",
    "#                                  store_cv_values=False)\n",
    "\n",
    "#1. 设置超参数（正则参数）范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#n_alphas = 20\n",
    "#alphas = np.logspace(-5,2,n_alphas)\n",
    "\n",
    "#2. 生成一个RidgeCV实例\n",
    "ridge = RidgeCV(alphas=alphas, store_cv_values=True)  \n",
    "\n",
    "#3. 模型训练\n",
    "ridge.fit(X_train, y_train)    \n",
    "\n",
    "#4. 预测\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "\n",
    "\n",
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print('The r2 score of RidgeCV on test is', r2_score(y_test, y_test_pred_ridge))\n",
    "print('The r2 score of RidgeCV on train is', r2_score(y_train, y_train_pred_ridge))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>cnt.1</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>9.998971e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>atemp</td>\n",
       "      <td>1.524898e-12</td>\n",
       "      <td>-1.688759e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>temp</td>\n",
       "      <td>1.168237e-12</td>\n",
       "      <td>4.680151e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>season_4</td>\n",
       "      <td>8.693655e-13</td>\n",
       "      <td>9.645535e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>season_1</td>\n",
       "      <td>8.220628e-13</td>\n",
       "      <td>1.123044e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>weathersit_1</td>\n",
       "      <td>6.207914e-13</td>\n",
       "      <td>5.509170e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit_2</td>\n",
       "      <td>4.954885e-13</td>\n",
       "      <td>7.249692e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>4.141647e-13</td>\n",
       "      <td>-1.972586e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>weekday_1</td>\n",
       "      <td>1.421929e-13</td>\n",
       "      <td>1.391451e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>holiday</td>\n",
       "      <td>1.299329e-13</td>\n",
       "      <td>-1.567841e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>holiday_1</td>\n",
       "      <td>1.299329e-13</td>\n",
       "      <td>-1.567841e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>weekday_3</td>\n",
       "      <td>1.077917e-13</td>\n",
       "      <td>-7.253487e-10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>hum</td>\n",
       "      <td>7.757002e-14</td>\n",
       "      <td>-2.918588e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>weekday_2</td>\n",
       "      <td>4.441494e-14</td>\n",
       "      <td>3.916558e-10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>weekday_0</td>\n",
       "      <td>-1.494000e-14</td>\n",
       "      <td>-4.531219e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>mnth</td>\n",
       "      <td>-2.395912e-14</td>\n",
       "      <td>-1.127264e-07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>weekday_5</td>\n",
       "      <td>-3.896337e-14</td>\n",
       "      <td>-7.211877e-10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>workingday</td>\n",
       "      <td>-4.786580e-14</td>\n",
       "      <td>2.679603e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>weekday_6</td>\n",
       "      <td>-6.712711e-14</td>\n",
       "      <td>3.419457e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday_0</td>\n",
       "      <td>-1.299329e-13</td>\n",
       "      <td>1.567841e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>weekday_4</td>\n",
       "      <td>-1.733692e-13</td>\n",
       "      <td>7.751916e-10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>season_3</td>\n",
       "      <td>-2.367177e-13</td>\n",
       "      <td>-2.030877e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>weathersit_3</td>\n",
       "      <td>-1.116280e-12</td>\n",
       "      <td>-1.275886e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season_2</td>\n",
       "      <td>-1.455108e-12</td>\n",
       "      <td>-5.672066e-10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         columns       coef_lr    coef_ridge\n",
       "23         cnt.1  1.000000e+00  9.998971e-01\n",
       "17         atemp  1.524898e-12 -1.688759e-08\n",
       "16          temp  1.168237e-12  4.680151e-08\n",
       "3       season_4  8.693655e-13  9.645535e-09\n",
       "0       season_1  8.220628e-13  1.123044e-08\n",
       "6   weathersit_1  6.207914e-13  5.509170e-09\n",
       "7   weathersit_2  4.954885e-13  7.249692e-09\n",
       "19     windspeed  4.141647e-13 -1.972586e-08\n",
       "10     weekday_1  1.421929e-13  1.391451e-09\n",
       "20       holiday  1.299329e-13 -1.567841e-09\n",
       "5      holiday_1  1.299329e-13 -1.567841e-09\n",
       "12     weekday_3  1.077917e-13 -7.253487e-10\n",
       "18           hum  7.757002e-14 -2.918588e-08\n",
       "11     weekday_2  4.441494e-14  3.916558e-10\n",
       "9      weekday_0 -1.494000e-14 -4.531219e-09\n",
       "22          mnth -2.395912e-14 -1.127264e-07\n",
       "14     weekday_5 -3.896337e-14 -7.211877e-10\n",
       "21    workingday -4.786580e-14  2.679603e-09\n",
       "15     weekday_6 -6.712711e-14  3.419457e-09\n",
       "4      holiday_0 -1.299329e-13  1.567841e-09\n",
       "13     weekday_4 -1.733692e-13  7.751916e-10\n",
       "2       season_3 -2.367177e-13 -2.030877e-08\n",
       "8   weathersit_3 -1.116280e-12 -1.275886e-08\n",
       "1       season_2 -1.455108e-12 -5.672066e-10"
      ]
     },
     "execution_count": 166,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(feat_names), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Lasso回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is 0.9999989996180092\n",
      "The r2 score of LassoCV on train is 0.999999\n"
     ]
    }
   ],
   "source": [
    "#### Lasso／L1正则\n",
    "# class sklearn.linear_model.LassoCV(eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, \n",
    "#                                    normalize=False, precompute=’auto’, max_iter=1000, \n",
    "#                                    tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=1,\n",
    "#                                    positive=False, random_state=None, selection=’cyclic’)\n",
    "from sklearn.linear_model import LassoCV\n",
    "\n",
    "#1. 设置超参数搜索范围\n",
    "#alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "\n",
    "#2. 生成学习器实例\n",
    "#lasso = LassoCV(alphas=alphas)\n",
    "\n",
    "#1. 设置超参数搜索范围\n",
    "#Lasso可以自动确定最大的alpha，所以另一种设置alpha的方式是设置最小的alpha值（eps） 和 超参数的数目（n_alphas），\n",
    "#然后LassoCV对最小值和最大值之间在log域上均匀取值n_alphas个\n",
    "# np.logspace(np.log10(alpha_max * eps), np.log10(alpha_max),num=n_alphas)[::-1]\n",
    "\n",
    "#2 生成LassoCV实例（默认超参数搜索范围）\n",
    "lasso = LassoCV()  \n",
    "\n",
    "#3. 训练（内含CV）\n",
    "lasso.fit(X_train, y_train)  \n",
    "\n",
    "#4. 测试\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "\n",
    "\n",
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print('The r2 score of LassoCV on test is', r2_score(y_test, y_test_pred_lasso))\n",
    "print('The r2 score of LassoCV on train is', r2_score(y_train, y_train_pred_lasso))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>coef_lasso</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>cnt.1</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>9.998971e-01</td>\n",
       "      <td>0.999</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>atemp</td>\n",
       "      <td>1.524898e-12</td>\n",
       "      <td>-1.688759e-08</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>temp</td>\n",
       "      <td>1.168237e-12</td>\n",
       "      <td>4.680151e-08</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>season_4</td>\n",
       "      <td>8.693655e-13</td>\n",
       "      <td>9.645535e-09</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>season_1</td>\n",
       "      <td>8.220628e-13</td>\n",
       "      <td>1.123044e-08</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>weathersit_1</td>\n",
       "      <td>6.207914e-13</td>\n",
       "      <td>5.509170e-09</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit_2</td>\n",
       "      <td>4.954885e-13</td>\n",
       "      <td>7.249692e-09</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>4.141647e-13</td>\n",
       "      <td>-1.972586e-08</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>weekday_1</td>\n",
       "      <td>1.421929e-13</td>\n",
       "      <td>1.391451e-09</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>holiday</td>\n",
       "      <td>1.299329e-13</td>\n",
       "      <td>-1.567841e-09</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>holiday_1</td>\n",
       "      <td>1.299329e-13</td>\n",
       "      <td>-1.567841e-09</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>weekday_3</td>\n",
       "      <td>1.077917e-13</td>\n",
       "      <td>-7.253487e-10</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>hum</td>\n",
       "      <td>7.757002e-14</td>\n",
       "      <td>-2.918588e-08</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>weekday_2</td>\n",
       "      <td>4.441494e-14</td>\n",
       "      <td>3.916558e-10</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>weekday_0</td>\n",
       "      <td>-1.494000e-14</td>\n",
       "      <td>-4.531219e-09</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>mnth</td>\n",
       "      <td>-2.395912e-14</td>\n",
       "      <td>-1.127264e-07</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>weekday_5</td>\n",
       "      <td>-3.896337e-14</td>\n",
       "      <td>-7.211877e-10</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>workingday</td>\n",
       "      <td>-4.786580e-14</td>\n",
       "      <td>2.679603e-09</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>weekday_6</td>\n",
       "      <td>-6.712711e-14</td>\n",
       "      <td>3.419457e-09</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday_0</td>\n",
       "      <td>-1.299329e-13</td>\n",
       "      <td>1.567841e-09</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>weekday_4</td>\n",
       "      <td>-1.733692e-13</td>\n",
       "      <td>7.751916e-10</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>season_3</td>\n",
       "      <td>-2.367177e-13</td>\n",
       "      <td>-2.030877e-08</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>weathersit_3</td>\n",
       "      <td>-1.116280e-12</td>\n",
       "      <td>-1.275886e-08</td>\n",
       "      <td>-0.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season_2</td>\n",
       "      <td>-1.455108e-12</td>\n",
       "      <td>-5.672066e-10</td>\n",
       "      <td>0.000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         columns       coef_lr    coef_ridge  coef_lasso\n",
       "23         cnt.1  1.000000e+00  9.998971e-01       0.999\n",
       "17         atemp  1.524898e-12 -1.688759e-08       0.000\n",
       "16          temp  1.168237e-12  4.680151e-08       0.000\n",
       "3       season_4  8.693655e-13  9.645535e-09       0.000\n",
       "0       season_1  8.220628e-13  1.123044e-08      -0.000\n",
       "6   weathersit_1  6.207914e-13  5.509170e-09       0.000\n",
       "7   weathersit_2  4.954885e-13  7.249692e-09      -0.000\n",
       "19     windspeed  4.141647e-13 -1.972586e-08      -0.000\n",
       "10     weekday_1  1.421929e-13  1.391451e-09      -0.000\n",
       "20       holiday  1.299329e-13 -1.567841e-09      -0.000\n",
       "5      holiday_1  1.299329e-13 -1.567841e-09      -0.000\n",
       "12     weekday_3  1.077917e-13 -7.253487e-10      -0.000\n",
       "18           hum  7.757002e-14 -2.918588e-08      -0.000\n",
       "11     weekday_2  4.441494e-14  3.916558e-10       0.000\n",
       "9      weekday_0 -1.494000e-14 -4.531219e-09      -0.000\n",
       "22          mnth -2.395912e-14 -1.127264e-07       0.000\n",
       "14     weekday_5 -3.896337e-14 -7.211877e-10       0.000\n",
       "21    workingday -4.786580e-14  2.679603e-09       0.000\n",
       "15     weekday_6 -6.712711e-14  3.419457e-09       0.000\n",
       "4      holiday_0 -1.299329e-13  1.567841e-09       0.000\n",
       "13     weekday_4 -1.733692e-13  7.751916e-10       0.000\n",
       "2       season_3 -2.367177e-13 -2.030877e-08       0.000\n",
       "8   weathersit_3 -1.116280e-12 -1.275886e-08      -0.000\n",
       "1       season_2 -1.455108e-12 -5.672066e-10       0.000"
      ]
     },
     "execution_count": 167,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(feat_names), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
